【发布时间】:2014-11-23 06:55:33
【问题描述】:
我正在使用 Oracle 11g Application Express,并在 SQL Plus CLI 中执行这些命令。这是上课的,我无法解决这个问题。我不知道如何在订单上添加商品的总数量 - 我很困惑,因为我不知道如何获取每个订单的 QUANTITY 总和(客户有多个订单)。
对于每个有订单的客户,列出客户编号,订单数量 该客户拥有,这些订单上的商品总数量,以及总价格 这几项。按客户编号订购输出。 (提示:您必须使用 GROUP BY 此查询中的子句)。
表格(我们将使用):
客户:包含客户编号
ORDERS:包含 order_num、customer_num
项目:包含 order_num、数量、total_price
我的逻辑:我需要能够计算每个客户每个订单号的数量总和。我已经在这里坐了一个多小时,无法弄清楚。
到目前为止,这是我可以制定的..
SELECT customer_num, count(customer_num)
FROM orders
GROUP BY customer_num;
我不太了解如何进行 GROUP BY(是的,我已经用谷歌搜索并研究了一段时间,但它只是没有点击),我不知道如何获取每个 QUANTITY 的总和每个客户的订单。
不是找人帮我做我的工作,只是一些指导 - 谢谢!
【问题讨论】:
-
通过
customer_num分组,您的方向是正确的。但是根据分配,您需要按订单和客户进行分组。你试过GROUP BY customer_num, order_num之类的吗? -
嗯,我的看法——如果我按
customer_num, order_num分组,那么它将显示每个order_num,并且当我这样做时,每个count(customer_num)都只有1。分配调用customer_num和客户拥有的订单数量,因此sum(customer_num)- 对于 ORDERS 表中的每个 customer_num 条目,都有一个订单。我只需要知道每个客户有多少订单,然后从中得出其他金额。 -
一次一步。如果您需要获取每个客户每个订单的数量总和,您需要以某种方式按
customer_num和order_num分组,对吗? -
下一步是您不需要客户数量,您需要订单中数量的总和。所以像
SUM(quantity). -
我必须拥有
count(customer_num),因为 ORDERS 表中的每个customer_num条目(甚至是重复的条目)都代表一个 ORDER。例如,客户 104 订购了一些东西,然后在不同的日期下了另一个订单 -customer_num104 将多次出现在 ORDERS 中,因此构成多个订单 - 我必须知道每个客户的订单数量。我试过SUM(quantity)- 它把我所有的号码都扔掉了。
标签: sql oracle oracle11g oracle-apex