我真的很困惑这个mysql查询。 我正在帮助一位朋友创建一个人员/事件数据表。 我已经成功创建了一个虚拟表,查看每个事件的每个工作人员的成本。 在下面的查询中,我选择了事件
SELECT event.eventid, costs.staffnumber, cost _hour *( SUM( TIME_TO_SEC( TIMEDIFF( hours, pause ) ) ) ) /3600 AS costs_event
FROM costs, event
WHERE costs.staffnumber = event.staffnumber
GROUP BY event.eventid, event.staffnumber
如果我带走了group by event.staffnumber
,它会给我一个错误的价值。
因为不同的行具有不同的值,但它只是假设每个员工都具有相同的cost_hour
。
示例:
1001 (Eventid)
42 (staffnumber)
112,50 (Costs Sum from 15 EUR * 7,5 hours)
第二行
1001
41 (staffnumber)
78 (Costs Sum from 12 * 6,5 hours)
所以我想获得190,50
当我带走group by event.staffnumber
时,我得到210欧元(14小时* 15欧元)。
那么我现在如何总结costs_event
列并按event.eventid
对它们进行分组。
将不胜感激任何帮助。
干杯
答案 0 :(得分:0)
包括cost_hour 总和:
SELECT event.eventid,
costs.staffnumber,
SUM( cost _hour*TIME_TO_SEC(TIMEDIFF(hours, pause)) ) /3600 AS costs_event
FROM costs
JOIN event
ON costs.staffnumber = event.staffnumber
GROUP BY event.eventid