我有3代表的SQL數據庫:SQL - 查詢報告MAX DATE結果或NULL結果
Customer record
表,持主數據(每行是唯一的)Customer notes
,每個音符數據/時間戳記(有可能是每個客戶的音符,或根本沒有)Product
表,顯示該客戶已經購買該產品表:tbl_Customer_記錄
客戶ID ----公司名稱公司----- -----段促銷代碼表:tbl_Customer_Notes
客戶ID ----注意-----創建日期表:tbl_Customer_Products
客戶ID ----產品類別
我想就是拉僅包含最新備註的客戶記錄列表,因此如果存在多個備註,則不存在重複行。但我也希望我的報告包含客戶記錄,如果根本沒有記錄。我已經用SELECT MAX函數實現了第一部分,並且運行良好,問題是當我在下面的最後一行代碼中添加OR = NULL子句時。這是行不通的,我找不出解決方案。
任何建議將不勝感激!
SELECT
[tbl_Customer_Records].[CustomerID],
[tbl_Customer_Records].[Company Name],
[tbl_Customer_Records].[Company Segment],
[tbl_Customer_Records].[Promo Code],
[tbl_Customer_Notes].[Note],
[tbl_Customer_Products].[Product Category]
FROM
tbl_Customer_Records
LEFT OUTER JOIN tbl_Customer_Notes
ON tbl_Customer_Records.CustomerID = tbl_Customer_Notes.CustomerID
LEFT OUTER JOIN tbl_Customer_Products
ON tbl_Customer_Records.CustomerID = tbl_Customer_Products.CustomerID
WHERE
[Product Category] in ('Nuts','Bolts','Screws','Spanners')
AND
[Created Date] in (SELECT MAX ([Created Date]) FROM tbl.Customer_Notes GROUP BY [CustomerID])
OR tbl_Customer_Note.Note is null
感謝您的回答!關於笨拙的專欄名稱,我將來要記住這一點。有趣的是,您的第一個解決方案返回4,315個結果和第二個4,393個結果 - 與Deepshikha的解決方案相同。感謝這兩個建議,我記下了將來使用的語法。非常感謝您花時間幫忙!丹尼爾 – user1811852
第一個返回任意記錄,如果有多個記錄與最大(Created_Date) –
啊,是的,我明白了。我確實有多個相同的CreatedDate的筆記,所以你的第一個解決方案在這種情況下效果更好。再次感謝。 (改變了接受的答案)。 – user1811852