mysql 需要帮助以进行查询

nle07wnf  于 2022-11-21  发布在  Mysql
关注(0)|答案(3)|浏览(89)

我需要弄清楚为什么我的查询不起作用。我想进行查询:
1)制作清单:custName,No_of_orders,avg_order_amt,其中中间的列是客户的订单总数,最后一列是该客户的平均订单金额。提示:使用列别名可以获取上面列出的列标题,以便在输出中显示。此外,这还需要在SELECT子句中列出两个聚合函数。
我的意思是,我希望我的查询选择每个客户,找出每个客户的订单数量,并计算每个客户的平均订单数量。
2)查找尚未发货的订单的customerID、客户名称、orderID和订单总值。提示:尚未发货的订单的shipDate值为NULL。
你能帮我找到错误或丢失的命令吗?下面是我的表格和代码:
SQL Tables
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;
Select c.customerID, c.cname, o.orderID

From Order_ o

Join Customer c

On c.customerID = o.customerID

Where o.orderDate = Null;

结果是空集。这不是我想要的。我知道customerID 77777没有顺序,所以它必须在一个集中。

hgtggwj0

hgtggwj01#

以下是有关查询错误的一些提示:
(上)
此查询有两个明显的问题。最明显的问题是您使用了聚合函数,但没有group by子句。第二个问题是from子句中的,。您应该在from子句中使用join语法。换句话说,where子句中的逻辑应该在一个或多个on子句中。
(下)
问题提到了shipdate,但我在查询中没有看到引用。

polhcujo

polhcujo2#

使用此选项:

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;
ckocjqey

ckocjqey3#

SELECT c.customerID, c.CName , o.OrderID, sum(price) AS total_Valueof_order  
FROM OrderTable o, Customer c, Shipment s, Order_Item oi, Item i 
WHERE  s.ShipDate IS NULL 
   AND c.customerID = o.customerID
   AND o.OrderID = s.OrderID 
   AND o.OrderID = oi.OrderID 
   AND oi.ItemID = i.ItemID;

相关问题