如何使用SQL计算我想要的成本是计算单个CCODE的成本。在此数据表中,成本属于日期(DayUID)而不是特定的CCODE,但我们可以根据CCODE的小时数为特定的CCODE提取该成本。数学计算应该像让我们说CCODE = SS1,其中DayUID = DDD1
因此,SS1的成本基本上如此计算(4小时/ 12小时)* 2000 = 666.67
DayUID | DayCost | PCODE | CCODE | Duration |
---------------------------------------------
DDD1 | 2000 | TS | SS1 | 3 |
DDD1 | 2000 | TS | SS1 | 1 |
DDD1 | 2000 | TS | ST2 | 2 |
DDD1 | 2000 | P | ST2 | 6 |
DDD2 | 3000 | P | IH1 | 6.6 |
DDD2 | 3000 | U | IH1 | 4 |
DDD2 | 3000 | TS | IH2 | 1 |
DDD3 | 1200 | TU | SC1 | 7 |
DDD3 | 1200 | P | SC2 | 8 |
DDD3 | 1200 | U | CMPLT | 3 |
答案 0 :(得分:1)
通过子查询中的DayUID和CCODE获取总持续时间:
SELECT a.DayUID,
a.CCODE,
SUM(a.Duration) / b.Duration * a.DayCost
FROM Table1 a
JOIN (SELECT DayUID,
SUM(Duration) Duration
FROM Table1
GROUP BY DayUID) b
ON a.DayUID = b.DayUID
GROUP BY DayUID, CCODE;