【发布时间】:2019-11-23 05:09:29
【问题描述】:
这是我在 1996 年返回客户的有效 SQL 查询:
SELECT C.CustomerID, C.CompanyName
FROM Customers C, Orders O
WHERE C.CustomerID = O.CustomerID AND YEAR(O.OrderDate) = 1996
GROUP BY C.CustomerID, C.CompanyName
ORDER BY C.CustomerID
现在我试图展示相反的情况;退回我们在 1996 年没有销售给的所有客户(即使我们在其他年份确实向他们销售过)。这就是我所拥有的,但它既返回了我们在 1996 年没有销售给的客户,也返回了我们做过的客户:
SELECT C.CustomerID, C.CompanyName FROM Orders O JOIN Customers C
ON O.CustomerID = C.CustomerID
WHERE YEAR(O.OrderDate) != 1996
GROUP BY C.CustomerID, C.CompanyName
ORDER BY C.CustomerID
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
标签: sql datetime subquery left-join