我有兩個查詢返回正確的結果。其中之一是:如何加入兩條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第二個輸出錯誤的數據。但第一個作爲魅力!謝謝! –