我对这个 MSSQL 查询有点卡住了,真的很感激这方面的一些帮助!我试图简单地将员工在特定时期内的假期数加起来。
SELECT e.EMPLOYEE_ID, COUNT(y.EMPLOYEE_ID) AS TOTAL_HOLIDAYS FROM EMPLOYEE e
LEFT OUTER JOIN
HOLIDAY y
ON e.EMPLOYEE_ID = y.EMPLOYEE_ID
WHERE e.IS_ACTIVE = 'true'
-- AND y.[DATE] BETWEEN '20121201' AND '20121210'
GROUP BY e.EMPLOYEE_ID
这种查询给了我我需要的东西,但我想为假期添加一个过滤器......我必须以错误的方式解决这个问题。我需要在数据集中列出所有员工 - 例如,即使 HOLIDAY 表中没有任何内容,我也想要结果。
ID TOTAL_HOLIDAYS
1 0
2 0
etc.
当我尝试添加注释行(我知道这两个日期之间没有假期)时,不会返回任何行。如何重写此查询以始终列出所有活动的 EMPLOYEE_ID 并计算两个日期之间的假期?