如何根据总小时数计算每日费用?

时间:2016-01-03 04:08:12

标签: mysql calculated-columns

如何使用SQL计算我想要的成本是计算单个CCODE的成本。在此数据表中,成本属于日期(DayUID)而不是特定的CCODE,但我们可以根据CCODE的小时数为特定的CCODE提取该成本。数学计算应该像让我们说CCODE = SS1,其中DayUID = DDD1

  • CCODE = SS1为4小时
  • DDD1的CCODE总持续时间= 12小时
  • DayUID = DDD1费用为2000

因此,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        |

1 个答案:

答案 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;

Route API