我需要弄清楚为什么我的查询不起作用。我想提问:
1)生成一个列表:custName,No_of_orders,avg_order_amt,其中中间列是 客户和最后一列的订单总数是平均订单金额 那个客户。提示:使用列别名获取上面列出的列标题以显示输出。此外,这需要在SELECT子句中列出两个聚合函数。
我的意思是我希望我的查询选择每个客户,查找每个客户订购的订单数量,并平均每个客户的订单金额。
2)查找尚未发货的订单的客户ID,客户名称,订单ID和订单总价值。提示:尚未发货的订单的shipDate值为NULL值。
你能帮我找到错误或缺少命令吗?这是我的表格和代码:
1
Select c.cname as custName, sum(o.orderID) as No_of_orders, avg(i.price) as avg_order_amt
From Customer c, Item i
Join Order_ o
On o.customerID = c.customerID and o.itemID = i.itemID;
2
Select c.customerID, c.cname, o.orderID
From Order_ o
Join Customer c
On c.customerID = o.customerID
Where o.orderDate = Null;
结果为空集。那不是我想要的。我知道customerID 77777没有订单,所以它必须在一个集合中。
答案 0 :(得分:0)
以下是您查询错误的一些提示:
(1)
此查询有两个明显的问题。最明显的是您使用聚合函数但没有group by
子句。第二个问题是,
子句中的from
。您应该在join
子句中使用from
语法。换句话说,where
子句中的逻辑应该在一个或多个on
子句中。
(2)
问题提及shipdate
,但我没有看到查询中引用的内容。
答案 1 :(得分:0)
使用此:
SELECT customer_name,
Count(*) AS No_of_orders,
Avg(order_amount) AS Avg_order_amount
FROM customer_master c
JOIN order_master o
ON c.customer_number = o.customer_number
GROUP BY c.customer_number;