【发布时间】:2015-02-26 22:29:03
【问题描述】:
我有以下 SQL 语句,显示至少完成 2 个订单的城市客户的总销售额。但是假设我只想显示某人至少完成了2个订单的城市,并且有两个客户住在这个城市/城市,所以我想要做的是挑选城市/城市一个客户至少下了2个订单,然后显示两个居住在这个城市的客户的总销售额,即使另一个客户只下了一个订单,那是怎么做的,是否有COUNT的比较语句- 操作能够显示城市中所有客户的销售额,如果是的话 - 它是如何表示的?
SELECT c.CityName, SUM(p.Price * o2.Orderquantity) AS 'TotalSalesAmount'
FROM Customers c, Order1 o1, Orderrader o2, Products p,
(SELECT o1.CustomerNr
FROM Order1 o1
GROUP BY o1.CustomerNr
HAVING COUNT(o1.CustomerNr) >= 2)
AS a WHERE c.CustomerNr = a.CustomerNr AND c.CustomerNr = o1.CustomerNr
AND o1.Ordernr = o2.Ordernr AND o2.Productnr = p.Productnr
GROUP BY c.CityName
我使用的表结构如下:
'Customers' has the columns: CustomerNr, City Name
'Order1' has columns: Ordernr, CustomerNr
'Order2' has columns: Ordernr, Productnr, Order quantity
'Products' has columns: ProductNr, Price
示例数据:“客户”表的示例数据:
- CustomerNr CityName:
- 01109 New York
- 01999 Los Angeles
- 20090 New York
“订单 1”的示例数据:
- Ordernr CustomerNr
- 1306 01109
- 1307 01109
- 1308 20090
“订单 2”的示例数据:
- OrderNr ProductNr Order quantity:
- 1306 15-116 3
- 1306 46-701 2
- 1307 15-96 1
- 1308 17-91 1
(等等...)
“产品”的示例数据:
- ProductNr Price:
- 15-116 44.00
- 15-96 28.50
- 46-701 3000.00
- 17-91 200.00
等等……
根据上面的SQL语句和示例数据,我想要的结果是:
- CityName TotalSalesAmount:
- New York 6360.50
【问题讨论】:
-
样本数据的期望输出是什么样的?
-
查看我上面编辑过的帖子。 :-)
-
您是如何获得 6260.50 的?您是说 6360.50 吗?
-
哈哈是的,我提到了 6360.50。 :)
-
Orders1和order2表是什么关系
标签: sql sql-server