如果没有日期记录,如何处理日期

时间:2019-07-05 08:46:32

标签: mysql

我正在建立一个图表,显示每个员工每月的新合同数量。不是每个月都记录在我的表中,如何将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的所有可能的不同值

任何提示将不胜感激!

1 个答案:

答案 0 :(得分:1)

使用条件聚合:

SELECT
    EmployeeName,
    SUM(CASE WHEN MONTH(date) = MONTH(NOW()) THEN contract ELSE 0 END) AS nbcontract
FROM yourTable
GROUP BY
    EmployeeName;

这种方法将确保即使在当月没有合同,每个员工也会出现在结果集中。