S
sercall
Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi5 + MS SQL Server
表A数据量比较大,几百万条记录。
表A (工作表): WNO WDAT WGRP WHR ...
(工号) (日期) (组别) (工时)
001 01/01/2001 101 8
002 01/01/2001 101 12
...
001 01/02/2001 101 10
002 01/02/2001 101 10
...
表B (组别表): GGRP GDAT GPRT GQTY ...
(组别) (日期) (产品编号) (数量)
101 01/01/2001 888 100
101 01/02/2001 999 200
...
表C (单价表): PPRT PRIC ...
(产品编号) (单价)
888 2.0
999 1.0
...
现在 按A.WNO(工号) 统计期间工资,要求结果如下:
--期间: 01/01/2001 - 01/02/2001
WNO AMT
(工号) (金额)
001 180
002 220
...
算法: 180 = 80 + 100
(例001) = 8 * (100*2.0)/(8+12) + 10 * (200*1.0)/(10+10)
= 1号001工资 + 2号001工资
= 1号001工时 * (1号101组总金额 / 1号101组总工时)
+2号001工时 * (2号101组总金额 / 2号101组总工时)
希望大家多多指教。
谢谢!
表A数据量比较大,几百万条记录。
表A (工作表): WNO WDAT WGRP WHR ...
(工号) (日期) (组别) (工时)
001 01/01/2001 101 8
002 01/01/2001 101 12
...
001 01/02/2001 101 10
002 01/02/2001 101 10
...
表B (组别表): GGRP GDAT GPRT GQTY ...
(组别) (日期) (产品编号) (数量)
101 01/01/2001 888 100
101 01/02/2001 999 200
...
表C (单价表): PPRT PRIC ...
(产品编号) (单价)
888 2.0
999 1.0
...
现在 按A.WNO(工号) 统计期间工资,要求结果如下:
--期间: 01/01/2001 - 01/02/2001
WNO AMT
(工号) (金额)
001 180
002 220
...
算法: 180 = 80 + 100
(例001) = 8 * (100*2.0)/(8+12) + 10 * (200*1.0)/(10+10)
= 1号001工资 + 2号001工资
= 1号001工时 * (1号101组总金额 / 1号101组总工时)
+2号001工时 * (2号101组总金额 / 2号101组总工时)
希望大家多多指教。
谢谢!