我无法找出从表“timeEntry”中提取我想要的数据的 mysql 查询:
hours creationDate userId clientId projectId taskId
20 2012-02-18 1 1 1 1
40 2012-02-18 1 1 1 1
30 2012-02-21 2 1 1 1
20 2012-02-22 2 1 1 2
30 2012-02-22 2 1 1 2
80 2012-02-23 1 2 2 2
10 2012-02-23 3 2 2 2
15 2012-02-23 1 2 2 3
40 2012-02-23 1 2 4 1
我想在给定的时间段内将这种结果作为另一个表,或 csv/excel 文件或 php 数组(其中 totalHours 是 userId 的小时数总和),比方说(2012 年之间) -02-01 和 2012-02-25):
clientId projectId taskId userId totalHours
1 1 1 1 60
2 30
2 2 50
2 2 2 1 80
3 10
3 1 15
4 1 1 40
我想我必须使用多个分组依据,我试过类似的方法:
SELECT clientId, projectId, taskId, userId, sum(hours)
FROM `timeEntry`
WHERE date_creation >= "2012-02-01"
AND date_creation <= "2012-02-25"
GROUP BY clientId, projectId, taskId, userId;
但是没用...
提前致谢。
最佳答案
Group by 之前需要去哪里
如果您想在分组前按日期过滤,请使用您已有但移到分组依据之前的 where 子句。
如果您希望将整个组过滤进或过滤出,请使用 having:
...
Group by ...
Having max(date) <= someValue and min(date) >= someValue
关于mysql - SQL 多重 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14944565/