我对Northwind Server示例数据库有疑问,我不知道如何解决它
显示CustomerID的所有客户,至少有三个不同的产品,从所有订单,但从未订购2个产品来自同一类别。
我不知道如何检查“但从未从同一类别订购两种产品”
请帮助我:)密码我试过这个问题:
SELECT
c.CustomerID,COUNT(DISTINCT p.ProductID)
FROM
Customers c
JOIN
Orders o ON o.CustomerID = c.CustomerID
JOIN
[Order Details] od ON od.OrderID = o.OrderID
JOIN
Products p ON p.ProductID = od.ProductID
GROUP BY
c.CustomerID
HAVING
COUNT(DISTINCT p.ProductID) >= 3 我在这些问题上已经被困了好几个小时了,请帮帮我!
这是Northwind示例数据库的链接:https://northwinddatabase.codeplex.com/
发布于 2015-12-25 15:53:20
再添加一个条件来检查不同产品的数量是否等于不同类别的数量。这确保每个类别总是有一个和唯一一个产品。
SELECT
c.CustomerID,COUNT(DISTINCT p.ProductID), count(distinct c.categoryid)
FROM Customers c
JOIN Orders o ON o.CustomerID = c.CustomerID
JOIN [Order Details] od ON od.OrderID = o.OrderID
JOIN Products p ON p.ProductID = od.ProductID
GROUP BY c.CustomerID
HAVING COUNT(DISTINCT p.ProductID) >= 3
and count(distinct c.categoryid) = COUNT(DISTINCT p.ProductID)发布于 2015-12-25 15:51:43
如果每个订单必须来自不同的类别,那么计数(产品)应该与COUNT(类别)相同。这是一种合乎逻辑的方法,但毫无疑问还有其他的解决方案。
https://stackoverflow.com/questions/34464203
复制相似问题