最新活动:电脑PC端+手机端+微网站+自适应网页多模板选择-建站388元起价!!!
当前位置:主页 > 网站建设 > SQL语句练习实例之四 找出促销活动中销售额最高

SQL语句练习实例之四 找出促销活动中销售额最高

时间:2023-05-21 20:05:21 阅读: 文章分类: 网站建设 作者: 网络小编

导读:1建站知识你刚在一家服装销售公司中找到了一份工作,此时经理要求你根据数据库中的两张表得到促销活动销售额最高的销售网站建设公司建设网站。

网站建设公司建设网站

复制代码 代码如下:

---找出促销活动中销售额最高的职员 ---你刚在一家服装销售公司中找到了一份工作,此时经理要求你根据数据库中的两张表得到促销活动销售额最高的销售员 ---1.一张是促销活动表 ---2.一张是销售客列表 create table Promotions ( activity nvarchar(30), sdate datetime, edate datetime ) insert Promotions select '五一促销活动','2011-5-1','2011-5-7' union select '十一促销活动','2011-10-1','2011-10-7' union select 'OA专场活动','2011-6-1','2011-6-7' go create table sales ( id int not null, name nvarchar(20), saledate datetime, price money ) go insert sales select 1,'王五','2011-5-1',1000 union select 1,'王五','2011-5-2',2000 union select 1,'王五','2011-5-3',3000 union select 1,'王五','2011-5-4',4000 union select 1,'张三','2011-5-1',1000 union select 1,'张三','2011-5-3',2000 union select 1,'张三','2011-5-4',4000 union select 1,'李四','2011-5-6',1000 union select 1,'赵六','2011-5-5',1000 union select 1,'钱七','2011-5-8',1000 union select 1,'孙五','2011-6-1',1000 union se建设网站lect 1,'孙五','2011-6-2',2000 union select 1,'王五','2011-6-3',3000 union select 1,'孙五','2011-6-4',4000 union select 1,'张三','2011-6-1',11000 union select 1,'张三','2011-6-3',20000 union select 1,'张三','2011-6-4',4000 union select 1,'李四','2011-6-6',1000 union select 1,'赵六','2011-6-5',1000 union select 1,'钱七','2011-6-8',1500 union select 1,'孙五','2011-10-1',11000 union select 1,'孙五','2011-10-2',12000 union select 1,'王五','2011-10-3',9000 union select 1,'孙五','2011-10-4',4000 union select 1,'张三','2011-10-1',11000 union select 1,'张三','2011-10-3',2000 union select 1,'张三','2011-10-4',4000 union select 1,'李四','2011-10-6',27000 union select 1,'赵六','2011-10-5',9000 union select 1,'钱七','2011-10-8',3000 go -----我们需要找出在每次的促销活动中,其销售总额大于 等于 ---所有其他职员销售额的职员及促销事件。 ---说明:谓词a2.name<>a.name将其他职员从子查询合计中排除出去 ---------谓词Between 中的子查询确保我们使用了正确的促销日期 --方法一: select a.name,b.activity,SUM(a.price) as totalprice from sales a ,Promotions as b where a.saledate between b.sdate and b.edate group by a.name,b.activity having SUM(price)>= all(select SUM(price) from sales a2 where a2.name<>a.name and a2.saledate between ( select sdate from Promotions as b2 where b2.activity=b.activity ) and (select edate from Promotions b3 where b3.activity=b.activity) group by a2.name) ----------------- ---方法二: ---说明: 如果促销活动时间是不重叠的,则promotions表中只有一个主键列,这样在group by --子句中使用(activity,sdate,edate)将不会改变。但是它将使having子句可以使用sdate和edate select a.name,b.activity,SUM(a.price) as totalprice from sales a ,Promotions as b where a.saledate betwee企业网站建设n b.sdate and b.edate group by b.activity,b.sdate,b.edate,a.name having SUM(price)>= all(select SUM(price) from sales a2 where a2.name<>a.name and a2.saledate between b.sdate and b.edate group by a2.name) go --方法三: ---使用cte(sql 2005以后的版本) with clearksTotal(name,activity,totalp网seo优化趋势rice) as ( select a.name,b.activity,SUM(price) from sales a ,Promotions b where a.saledate between b.sdate and b.edate group by a.name,b.activity ) select c1.name,c1.activity,c1.totalprice from clearksTotal c1 where totalprice=(select MAX(c2.totalprice) from clearksTotal c2 where c1.activity=c2.activity) go drop table Promotions go drop table sales

关键词标签: SQL 销售额 之四

声明: 本文由我的SEOUC技术文章主页发布于:2023-05-21 ,文章SQL语句练习实例之四 找出促销活动中销售额最高主要讲述销售额,之四,SQL网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_3898.html

我的IDC 网站建设技术SEOUC.COM
专注网站建设,SEO优化,小程序设计制作搭建开发定制网站等,数千家网站定制开发案例,网站推广技术服务。
  • 5000+合作客服
  • 8年从业经验
  • 150+覆盖行业
  • 最新热门源码技术文章