我有两个查询返回正确的结果。其中之一是:如何加入两条sql语句
select distinct epr.DepartmentCode
from [dbo].[EmployeePayRates] epr
join [dbo].[EmployeeTimecards] et on epr.EmployeeID = et.EmployeeID
where StoreID = 89
它检查所有在店里89.查询返回检查过在不同部门的员工:
DepartmentCode
1
2
5
第二个查询:
SELECT DISTINCT
DepartmentCode, count(DISTINCT EmployeeID)
FROM [dbo].[EmployeeTimecards]
WHERE EmployeeTimecardDate = '2013-11-25'
AND StoreID = 89
GROUP BY
DepartmentCode
它返回现在每个部门的员工人数为89人。表看起来像:
DepartmentCode EmployeeCount
1 17
5 7
而且我想使它看起来像:
DepartmentCode EmployeeCount
1 17
2 0
5 7
我会很感激,如果有人会告诉我如何加入这些查询。 在此先感谢。
我认为这将不起作用,因为以您的'DepartmentCodes'开始,CTE排除雇员结果没有任何员工卡关联的结果。也许你甚至不需要CTE? – Sebas
@Sebas为什么不呢? CTE中的查询与返回所需3个部门代码的问题中的第一个查询完全相同,而我仅将'LEFT JOIN'返回到'EmployeeTimecards',因此没有理由不包含所有3行在最后的结果。然而,你是对的,CTE不是必需的,在我的更新中,我给出了只有一个连接的解决方案。 – GarethD
@GarethD第二个输出错误的数据。但第一个作为魅力!谢谢! –