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

news/2025/3/14 16:45:25/

描述

Customers 表有字段,顾客名称:cust_name、顾客id:cust_id

cust_idcust_name
cust10andy
cust1ben
cust2tony
cust22tom
cust221an
cust2217hex

Orders订单信息表,含有字段,订单号:order_num、顾客id:cust_id

order_numcust_id
a1cust10
a2cust1
a3cust2
a4cust22
a5cust221
a7cust2217

OrderItems表有字段,商品订单号:order_num、商品数量:quantity、商品价格:item_price

order_numquantityitem_price
a1100010
a220010
a31015
a42550
a51525
a777

【问题】

除了返回顾客名称和订单号,返回 Customers 表中的顾客名称(cust_name)和Orders 表中的相关订单号(order_num),添加第三列 OrderTotal,其中包含每个订单的总价,并按顾客名称再按订单号对结果进行升序排序。

【示例结果】返回顾客名称 cust_name、订单号order_num、订单总额OrderTotal

cust_nameorder_numOrderTotal
ana5375
andya110000
bena22000
hexa749
toma41250
tonya3150


【示例解析】

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

示例1

输入:

DROP TABLE IF EXISTS `Orders`;
CREATE TABLE IF NOT EXISTS `Orders`(order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',cust_id VARCHAR(255) NOT NULL COMMENT '顾客id'
);
INSERT `Orders` VALUES ('a1','cust10'),('a2','cust1'),('a3','cust2'),('a4','cust22'),('a5','cust221'),('a7','cust2217');DROP TABLE IF EXISTS `Customers`;
CREATE TABLE IF NOT EXISTS `Customers`(cust_id VARCHAR(255) NOT NULL COMMENT '客户id',cust_name VARCHAR(255) NOT NULL COMMENT '客户姓名'
);
INSERT `Customers` VALUES ('cust10','andy'),('cust1','ben'),('cust2','tony'),('cust22','tom'),('cust221','an'),('cust2217','hex');DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',quantity INT(16) NOT NULL COMMENT '商品数量',item_price INT(16) NOT NULL COMMENT '商品价格'
);
INSERT `OrderItems` VALUES ('a1',1000,10),('a2',200,10),('a3',10,15),('a4',25,50),('a5',15,25),('a7',7,7);

复制输出:

an|a5|375
andy|a1|10000
ben|a2|2000
hex|a7|49
tom|a4|1250
tony|a3|150

复制

《SQL必知必会(第5版)》独家授权

答案

select t1.cust_name,t2.order_num,sum(t3.quantity*t3.item_price) as orderTotal
from Customers t1,Orders t2,OrderItems t3
where t1.cust_id=t2.cust_id
and t2.order_num=t3.order_num
group by t1.cust_name,t2.order_num
order by t1.cust_name,t2.order_num


http://www.ppmy.cn/news/48443.html

相关文章

核心业务9:还款业务实现和首页信息展示的完善

核心业务9:还款业务实现 1.还款业务前端 2.还款业务流程图 3.汇付宝接口调用 4.尚融宝接口调用 5.首页信息展示的完善 6.资金记录展示 核心业务9:还款业务实现 1.还款业务前端 按钮 pages/lend/_id.vue

探索Qt图像处理的奥秘:从入门到精通

探索Qt图像处理的奥秘:从入门到精通(Exploring the Secrets of Qt Image Processing: From Beginner to Expert) 引言:Qt图像处理的概述和应用(Introduction: Overview and Applications of Qt Image Processing&#…

C++游戏分析与破解方法介绍

1、C游戏简介 目前手机游戏直接用C开发的已经不多,使用C开发的多是早期的基于cocos2dx的游戏,因此我们这里就以cocos2d-x为例讲解C游戏的分析与破解方法。 Cocos2d-x是一个移动端游戏开发框架,可以使用C或者lua进行开发,也可以混…

机器学习 day06(向量化应用于多元线性回归的梯度下降算法,正规方程)

1. 向量化多元线性回归,及梯度下降算法 将W₁,…,Wn写成向量W,将X₁,…,Xn写成向量X,而b还是之前的b注意:在多元线性回归的梯度下降算法中,Wj是指从W₁到Wn中的某一项&…

通识哈夫曼树及其应用,一起来构造属于自己的哈夫曼树

1.哈夫曼树的背景 哈夫曼(霍夫曼、赫夫曼)David Albert Huffman(August9,1925-October7,1999)。计算机科学的先驱,以他的哈夫曼编码闻名,在他的一生中,对于有限状态自动机,开关电路,异步过程和信…

死磕“增长”:火山引擎的实用主义

作者 | 曾响铃 文 | 响铃说 在刘慈欣的科幻小说《三体》中,地外文明为了封锁地球科技,在天文台向地球科学家展现了「宇宙闪烁」这一奇观,试图颠覆人类的认知,从而影响科技进步,促使地球科技发展陷入停滞。 如今&…

playwright实战篇(tx、ali225)

人人都笑金角,人人都是金角推荐文章: 1、https://playwright.dev/python/docs/api/class-playwright //官方文档 2、https://cuiqingcai.com/36045.html //崔庆才教程 3、https://github.com/qqq732004709/ //实战参考 4、https://www.cnblogs.com/ca…

4.17~4.18学习总结

网络编程 概述 1.什么是网络编程 在网络通信协议下,不同计算机上运行的程序,进行的数据传输,计算机跟计算机之间可以通过网络进行数据传输。 2.常见的软件架构: B/S,C/S 3.通信的软件架构CS BS各有什么区别和优点…