0

我真的被这个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.

将不胜感激任何帮助。

干杯

4

1 回答 1

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
于 2013-04-27T09:33:53.967 回答