我試圖在沒有爲特定日期找到記錄時在「nb」字段中顯示0。現在輸出是0行,除非我指定的日期存在於「Commande」表中。當沒有記錄被發現時,SQL服務器顯示計數爲0
SELECT
isnull(COUNT(*), 0) as nb,
CONVERT(date, c.Date_commande) as Date_commande,
f.Code_fournis
FROM Commande c
LEFT JOIN Fournisseur f
ON c.Code_fournis = f.Code_fournis
WHERE f.Code_fournis = 'XNZ'
AND Convert(date, c.Date_commande) = '2015-10-28'
GROUP BY CONVERT(date, c.Date_commande), f.Code_fournis
ORDER BY c.date_commande desc
沒有NULL,根本沒有行。這是因爲你的查詢沒有任何行因爲where子句而返回。有很多方法可以處理這個問題。您可以使用EXISTS檢查並返回硬編碼值NOT EXISTS。 –
只是一個評論,你的左連接作爲一個常規的內連接執行......將f.Code_fournis ='XNZ'從WHERE移到ON以獲得真正的左連接行爲。 – jarlh