我正在尝试编写一个查询,以显示订单数和每个客户在这些订单中购买的商品数
SELECT customers.customer_id, COUNT(orders.order_id),
SUM(order_details.order_qty)
FROM customers
LEFT OUTER JOIN orders
ON orders.customer_id=customers.customer_id
LEFT OUTER JOIN order_details
ON order_details.order_id=orders.order_id
GROUP BY customers.customer_id;
我要连接三个表,正如您到目前为止所看到的那样...问题是我的查询结果错误
customer_id:1应该有3个订单,n个订单中的商品数量应该是5
我正在使用Oracle Database 12.2.0.1.0版
问题是我的查询结果是错误的
猜测您的订单有多个详细记录。因此,只要像这样加入他们,就会根据详细信息记录的数量生成一个产品。
您可以做的是使用内联视图汇总qty
每个订单ID;
SELECT customers.customer_id
, COUNT(orders.order_id)
, SUM(order_details.tot_qty)
FROM customers
LEFT OUTER JOIN orders
ON orders.customer_id=customers.customer_id
LEFT OUTER JOIN (select order_id, SUM(order_qty) as tot_qty
from order_details
group by order_id) order_details
ON order_details.order_id=orders.order_id
GROUP BY customers.customer_id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句