我有一個用戶表和一個時間表條目表。我試圖獲取每個員工的sum(time_entry.hours_worked)
,其中日期在一定範圍內。在MySQL中,如何獲得一個聚合函數在where子句和group之後返回0?
有了:
SELECT employee.id, COALESCE(SUM(time_entry.hours_worked),0) as `sum`
FROM employee
LEFT JOIN time_entry
ON employee.id = time_entry.student_id
GROUP BY employee.id;
我能得到所有員工的條目,即使沒有時間的工作:
+----+--------+
| id | sum |
+----+--------+
| 1 | 191.00 |
| 2 | 48.00 |
| 3 | 0.00 |
+----+--------+
隨着WHERE語句:
SELECT employee.id, COALESCE(SUM(time_entry.hours_worked),0) AS `sum`
FROM employee
LEFT JOIN time_entry
ON employee.id = time_entry.student_id
WHERE time_entry.date < 1367798400
GROUP BY employee.id;
我獲得一個空集。如何使用WHERE
聲明,並且在數據庫中未找到任何條目時仍然獲得每個員工0個?
怎麼你的空集看起來...你可以提供像第一結果的一個例子設置 – Hackerman