我正在尝试通过适当的SQL语句来解决该问题:“在一个客户已至少下达三笔订单的城市中,已售出了多少钱给所有客户。结果应显示城市名称和总订单这些客户的数量”。
问题是我有三个表可以使用:Order1,Order2和Customers。这些表格的结构如下:
Order1 has the attributes: Ordernr, CustomerNr.
Order2 has the attributes: Ordernr, Order quantity.
Customers has the attributes: CustomerNr, Customer name, City name.
使用此代码,我可以将三个表连接起来,以显示来自每个城市的每个客户的订单数量。但是,如何为至少有三个订单的城市中的客户显示订单数量?
SELECT Customers.CustomerNr, CityName, Order2.OrderQuantity
FROM Order1 INNER JOIN Order2
ON Order1.ordernr = Order2.ordernr JOIN Customers
ON Customers.CustomerNr = Order1.CustomerNr
试试这个:
SELECT c.CityName, SUM(o2.OrderQuantity) OrderQuantity
FROM Order1 o1
INNER JOIN (SELECT o1.CustomerNr
FROM Order1 o1
GROUP BY o1.CustomerNr
HAVING COUNT(o1.Ordernr) >= 3
) AS a ON o1.CustomerNr = a.CustomerNr
INNER JOIN Order2 o2 ON o1.Ordernr = o2.Ordernr
INNER JOIN Customers c ON o1.CustomerNr = c.CustomerNr
GROUP BY c.CityName
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句