我正在使用Oracle 11g Application Express,并在SQL Plus CLI中执行这些命令。这是一堂课,我无法克服这个问题。我不知道如何将订单中的项目总数相加-我感到困惑,因为我不知道如何按订单获得QUANTITY的总和(客户有多个订单)。
对于每个拥有订单的客户,列出客户编号,客户拥有的订单数量,这些订单上的项目总数以及项目的总价。按客户编号订购输出。(提示:您必须在此查询中使用GROUP BY子句)。
表(我们将使用):
客户:包含customer_num
ORDERS:包含order_num,customer_num
ITEMS:包含order_num,数量,total_price
我的逻辑:我需要能够计算每个客户每个订单号的数量总和。我在这里坐了一个多小时,无法弄清。
到目前为止,这是我可以制定的。
SELECT customer_num, count(customer_num) FROM orders GROUP BY customer_num;
我不太了解如何对GROUP BY进行很好的处理(是的,我已经在Google上进行了一些研究并进行了研究,并且它只是没有单击),而且我不知道如何获取每个客户的每个订单的QUANTITY的总和。
不找人为我做我的工作,只是一些指导-谢谢!
select o.customer_num,
count(distinct o.order_num) as num_orders,
sum(i.quantity) as total_qty,
sum(i.total_price) as total_price
from orders o
join items i
on o.order_num = i.order_num
group by o.customer_num
order by o.customer_num
第一件事:您必须将解决问题所需的两个表(订单和项目)结合在一起。相关字段似乎是order_num
第二件事:您的group by子句很好,您希望每个客户一行。但是由于连接到项目表,您将不得不计算DISTINCT订单(因为订单和项目之间可能存在一对多关系)。否则,具有2个不同关联项目的订单将被计算两次。
接下来,对数量和总价求和,由于已加入所需的表,因此现在可以执行此操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句