需要帮助才能进行查询

时间:2013-11-16 23:36:17

标签: mysql sql

我需要弄清楚为什么我的查询不起作用。我想提问:

1)生成一个列表:custName,No_of_orders,avg_order_amt,其中中间列是 客户和最后一列的订单总数是平均订单金额 那个客户。提示:使用列别名获取上面列出的列标题以显示输出。此外,这需要在SELECT子句中列出两个聚合函数。

我的意思是我希望我的查询选择每个客户,查找每个客户订购的订单数量,并平均每个客户的订单金额。

2)查找尚未发货的订单的客户ID,客户名称,订单ID和订单总价值。提示:尚未发货的订单的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;

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没有订单,所以它必须在一个集合中。

2 个答案:

答案 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;