首页 > 试题广场 >

38.返回顾客名称和相关订单号以及每个订单的总价 Custo

[单选题]
38.返回顾客名称和相关订单号以及每个订单的总价
Customers 表有字段,顾客名称:cust_name、顾客id:cust_id
cust_id cust_name
cust10
andy
cust1
ben
cust2
tony
cust22
tom
cust221
an
cust2217
hex
Orders订单信息表,含有字段,订单号:order_num、顾客id:cust_id
order_num cust_id
a1 cust10
a2 cust1
a3 cust2
a4 cust22
a5 cust221
a7 cust2217
OrderItems表有字段,商品订单号:order_num、商品数量:quantity、商品价格:item_price
order_num quantity item_price
a1 1000
10
a2 200
10
a3 10
15
a4 25
50
a5 15 25
a7 7 7
【问题】
除了返回顾客名称和订单号,返回 Customers 表中的顾客名称(cust_name)和Orders 表中的相关订单号(order_num),添加第三列 OrderTotal,其中包含每个订单的总价,并按顾客名称再按订单号对结果进行升序排序。

【示例结果】返回顾客名称 cust_name、订单号order_num、订单总额OrderTotal
cust_name order_num OrderTotal
an a5 375
andy a1 10000
ben a2 2000
hex a7 49
tom a4 1250
tony a3 150

【示例解析】
例如顾客名称cust_name为an的顾客的订单a5的订单总额为quantity*item_price = 15 * 25 = 375,最后以cust_name和order_num来进行升序排序。

  • select cust_name,t3.order_num ,avg(quantity*item_price) as OrderTotal
    from Customers as t1 inner join Orders as t2
    on t1.cust_id=t2.cust_id
    inner join OrderItems as t3
    on t2.order_num=t3.order_num
    group by cust_name,t3.order_num
    order by cust_name,t3.order_num
  • select cust_name,t3.order_num ,sum(quantity*item_price) as OrderTotal
    from Customers as t1 inner join Orders as t2
    on t1.cust_id=t2.cust_id
    inner join OrderItems as t3
    on t2.order_num=t3.order_num
  • select cust_name,t3.order_num ,sum(quantity*item_price) as OrderTotal
    from Customers as t1 inner join Orders as t2
    on t1.cust_id=t2.cust_id
    inner join OrderItems as t3
    on t2.order_num=t3.order_num
    group by cust_name,t3.order_num
    order by cust_name,t3.order_num
  • select cust_name,o.order_num,quantity*item_price as OrderTotal
    from Customers as c join Orders as o join OrderItems as oi
    on c.cust_id = o.cust_id and o.order_num = oi.order_num
    order by cust_name,o.order_num;
格式能写得再烂一点吗
发表于 2023-07-25 23:13:45 回复(0)
D为什么不可以 是这个语句有问题吗
发表于 2024-07-19 18:00:46 回复(0)
不明白为什么要sum,一个顾客可以买多个订单,但订单号肯定不会重复啊,感觉不需要sum
发表于 2024-02-01 12:19:19 回复(0)
没看明白
发表于 2023-04-01 17:13:14 回复(0)