因此,我将数据导入到以下格式的表中(我们称之为 RAWDATA):
EMPID | STARTDATE | ENDDATE | TOTALHOURS | TOTALWAGES
ABC123 | 01-01-2013 | 01-28-2013 | 160.0 | 1800.00
XYZ987 | 01-01-2013 | 01-31-2013 | 200.0 | 2500.00
我需要获取该数据,并将其以下列格式放入不同的表 (EMPDATA) 中:
EMPID | 日期 | 小时 | 工资 ABC123 | 01-01-2013 | 5.71 | 64.29 ABC123 | 01-02-2013 | 5.71 | 64.29 ABC123 | 01-03-2013 | 5.71 | 64.29 ...... | .......... | .... | ...... XYZ987 | 01-01-2013 | 6.45 | 80.66 XYZ987 | 01-02-2013 | 6.45 | 80.66 XYZ987 | 01-03-2013 | 6.45 | 80.66 ...... | .......... | .... | ......
我的想法是在 STARTDATE 和 ENDDATE 之间做一个 DATEDIFF 来计算多少天(在这种情况下:28)来分配小时数和工资,然后对于每一天,插入一行包含每天工作的平均小时数和工资. 这一切都将通过 RAWDATA 表上的触发器来完成。我只是不确定如何在触发器中从 STARTDATE 迭代到 ENDDATE。
编辑:我还应该声明,导入的数据并不总是每行都有相同的开始/结束日期。我已经更新了第一个表格示例以表明这一点。