我需要帮助解决一个问题,我现在已经绞尽脑汁待了两天(差不多),在这个任务上。我仍然是SQL新手,我只是苦苦挣扎。
我不想回答!我只是在寻求帮助,朝着正确的方向前进。
以下是问题:
写一个回答这个问题的SELECT语句:哪些客户订购了多个产品?返回这些列: 来自Customers表的电子邮件地址 来自客户订单的不同产品的数量
这是我到目前为止所做的:
SELECT Customers.CustomerID,
Count(DISTINCT ProductID) AS ProductsCount
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
JOIN Products
ON Products.ProductID = OrderItems.ProductID
GROUP BY Customers.CustomerID,
Orders.CustomerID
但我一直收到这个错误:
Msg 4104, Level 16, State 1, Line 2
The multi-part identifier "OrderItems.ProductID" could not be bound.
这里有三个表的结构是。
Customer表有一个Emailaddress和CustomerID列。 Orders表具有CustomerID和OrderID列。 Products表具有ProductID列。 OrderItems表具有OrderID,ProductID和Quantity列。
任何帮助都会非常有用!
谢谢!
答案 0 :(得分:1)
通过加入OrderItems表修复语法,并且为了多次查找内容,您需要使用group by field1,field2等具有count(field)>你快到了。
答案 1 :(得分:0)
以下是寻找答案的提示,
查找OrderItems
中包含多个项目的订单
将having clause
与Count() aggregate
和Group by orderID
一起使用的表格。
所以从第一步开始,您将获得超过的订单 每个订单中的一个项目和产品数量。接下来加入第一步结果 订购表以获取customerid。
接下来加入第二步结果与customers表获取 客户信息谁购买了多个单一产品 有计数的订单。
答案 2 :(得分:0)
你快到了: - )