我正在建立一个图表,显示每个员工每月的新合同数量。不是每个月都记录在我的表中,如何将0记录为每个月没有记录的每个员工的合同数?
SELECT EmployeeName, SUM(contract) as nbcontract
FROM table
WHERE month(Date) = month(now())
group by EmployeeName
当月无记录时的当前结果(现在):
EmployeeName|nbcontract
预期结果:
EmployeeName|nbcontract
employee1 0
employee2 0
employee3 0
...
其中EmployeeName显示EmployeeName的所有可能的不同值
任何提示将不胜感激!
最佳答案
使用条件聚合:
SELECT
EmployeeName,
SUM(CASE WHEN MONTH(date) = MONTH(NOW()) THEN contract ELSE 0 END) AS nbcontract
FROM yourTable
GROUP BY
EmployeeName;
这种方法将保证即使每个员工在当月没有合同,他也将出现在结果集中。
关于mysql - 如果没有日期记录,如何处理日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56899650/