我有下表(简化):
user_id date hours
1 2012-03-01 5
2 2012-03-01 8
3 2012-03-01 6
1 2012-03-02 3
3 2012-03-02 7
我想要的是在单个查询中获取给定用户 ID(例如 1)的总工作小时数,以及无论哪个用户(给定时间段内)的总工作小时数。
因此对于 user_id = 1 和时间段:2012-03-01 - 2012-03-02,查询应返回:own=8,总数=29.
我可以在两个单独的查询中完成,但不能在一个单独的查询中完成。
最佳答案
使用CASE
:
SELECT SUM(
CASE user_id
WHEN 1 THEN hours
ELSE 0
END) as Own,
SUM(hours) as Total
FROM HoursWorked
WHERE date BETWEEN '2012-03-01' AND '2012-03-02';
关于mysql - 在同一查询中获取个人和总工作时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9947719/