我有一个包含 3 个表的 SQL 数据库:
Customer record
表,保存主数据(每一行都是唯一的)Customer notes
,每个笔记数据/时间戳(每个客户可能有很多笔记,或者根本没有)Product
表格,显示哪个客户购买了哪个产品表:tbl_Customer_Records
CustomerID---- Company Name-----Company Segment----- Promo Code表:tbl_Customer_Notes
CustomerID---- Note-----Created Date表:tbl_Customer_Products
CustomerID---- 产品类别
我想要的是提取仅包含最新注释的客户记录列表,因此如果存在多个注释,则没有重复行。但是,如果根本不存在任何注释,我还希望我的报告包含客户记录。我已经使用 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