2
當我做一個左外連接時,我希望得到所有記錄,查詢將返回左表中與左表不匹配的所有記錄。左連接沒有給出所有記錄我的查詢有什麼問題
我想選擇記錄,即使月份數據在表格中不可用。假設我有五個月的記錄。所以當我執行我的查詢時,我想要總數爲12的記錄[left outer join],其值爲0,形成右表[client_service]表。
我的查詢是提前
SELECT YEAR(CLIENT_SERVICE.cliserv_effective_date) As Year
, MonthsTable.MonthName As Month
, COUNT(CLIENT_SERVICE.cliserv_id) As ClientsInService
FROM MonthsTable
left outer join CLIENT_SERVICE
ON MonthsTable.MonthName = DATENAME(month,CLIENT_SERVICE.cliserv_effective_date)
WHERE CLIENT_SERVICE.serv_id = 24
AND CLIENT_SERVICE.cliserv_status = 'Active'
AND YEAR(CLIENT_SERVICE.cliserv_effective_date) BETWEEN 2014 AND 2015
GROUP BY YEAR(CLIENT_SERVICE.cliserv_effective_date)
, DATENAME(month,CLIENT_SERVICE.cliserv_effective_date)
, [MonthsTable].MonthName
, MONTH(CLIENT_SERVICE.cliserv_effective_date)
ORDER BY YEAR(CLIENT_SERVICE.cliserv_effective_date)
, MONTH(CLIENT_SERVICE.cliserv_effective_date);
謝謝!
這是'CLIENT_SERVICE.serv_id = 24 CLIENT_SERVICE.cliserv_status =「Active'',消除了行,因爲如果沒有匹配的CLIENT_SERVICE行,這些屬性將是NULL。最好在Join子句的「ON」部分添加這些條件 – Ronald