问:对于每个客户列表,CustomerID和所下的订单总数。三个表上的SQL查询返回一个综合答案
我相信,我可以用这三个表
Customer_T Order_T OrderLine_T
+------+------+------+- +---------+-----------+-------+ +---------+-----------------+
|CustID| CNAME | Addr | | OrderID | OrderDate |CustID | |OrderID | OrderedQuantity |
+------+------+------+ +-------+----+--------+-------+ +---------+-----------------+
我试过几个查询执行这个查询,这是因为它不是在一个聚合包含返回错误Customer_T.CustomerID无效我最新的迭代功能或按分组划分。
SELECT
Customer_T.CustomerID, Order_T.OrderID
FROM
Customer_T, Order_T, OrderLine_T
WHERE
Order_T.CustomerID=Customer_T.CustomerID
AND Order_T.OrderID=OrderLine_T.OrderID
ORDER BY
COUNT(OrderLine_T.OrderedQuantity)
我不知道哪里去了这里...我应该使用连接运算符的东西?
编辑:我应该提到,需要从Customer_T表中拉出额外的CustID是B/C有客户谁没有购买任何东西,并没有包括在订单表(每个客户)。
[不良习惯踢:使用旧样式的JOIN(HTTP:// sqlblog。com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) - 旧式*逗号分隔的表*样式列表被替换为*正确*在ANSI ANSI ** 92 ** SQL标准(**超过20年**前)中使用ANSI'JOIN'语法,并且不鼓励使用它 – 2014-09-28 07:18:07
是的,您应该尝试使用JOIN。在你的情况下使用连接实现结果相当容易。 – 2014-09-28 07:19:06
好的,我还没有加入。我不太清楚如何考虑这样的查询。有人会提供一些伪代码吗? – 2014-09-28 07:26:06