复制代码代码如下所示:
-找到销售促销的最高销售人员
你刚刚在一家服装销售
公司找到了一份
工作,经理让你从数据库中的两张表中得到促销。
--- 1。一个是促销桌。
--- 2。一个是销售清单。
创建表的促销活动
(
活动nvarchar(30),
姓名
日期,
EDATE DateTime
)
插入促销
选择51提升,'2011-5-1 ','2011-5-7
联盟
选择十一提升,'2011-10-1 ','2011-10-7
联盟
select'oa特殊事件,'2011-6-1 ','2011-6-7
去
创建表的销售
(
id不是空的,
姓名nvarchar(20),
saledate DateTime,
价格的钱
)
去
将销售
Select 1, 'king five','2011-5-1', 1000 Union
选择1,王五,'2011-5-2 ',2000联盟
选择1,王五,'2011-5-3 ',3000联盟
选择1,王五,'2011-5-4 ',4000联盟
选择1,张三,'2011-5-1 ',1000联盟
Select 1, 'Zhang three','2011-5-3', 2000 Union
选择1,张三,'2011-5-4 ',4000联盟
选择1,李四,'2011-5-6 ',1000联盟
选择1,赵六,'2011-5-5 ',1000联盟
选择1,钱七,'2011-5-8 ',1000联盟
选择1,阳光五,'2011-6-1 ',1000联盟
选择1,阳光五,'2011-6-2 ',2000联盟
选择1,王五,'2011-6-3 ',3000联盟
选择1,阳光五,'2011-6-4 ',4000联盟
选择1,张三,'2011-6-1 ',11000联盟
选择1,张三,'2011-6-3 ',20000联盟
选择1,张三,'2011-6-4 ',4000联盟
选择1,李四,'2011-6-6 ',1000联盟
选择1,赵六,'2011-6-5 ',1000联盟
选择1,钱七,'2011-6-8 ',1500联盟
选择1,阳光五,'2011-10-1 ',11000联盟
选择1,阳光五,'2011-10-2 ',12000联盟
选择1,王五,'2011-10-3 ',9000联盟
选择1,阳光五,'2011-10-4 ',4000联盟
选择1,张三,'2011-10-1 ',11000联盟
选择1,张三,'2011-10-3 ',2000联盟
选择1,张三,'2011-10-4 ',4000联盟
选择1,李四,'2011-10-6 ',27000联盟
选择1,赵六,'2011-10-5 ',9000联盟
选择1,钱七,'2011-10-8 ',3000
去
-我们需要
发现,在每次促销中,总销售额大于等于。
-所有其他员工销售人员和促销活动。
描述:A2。名称> a.name其他人员
查询谓词将全部
Is the predicate Between subquery in ensuring that we are using the correct date of promotion
-
方法1:
选择a.name,b.activity,和(a.price)为总价
从A销售,晋升为B
在a.saledate b.sdate和b.edate之间
Group by a.name, b.activity
总(价格)全部(从销售A2中选择> =(和)价格
其中A2。名称> a.name和a2.saledate之间
(
选择姓名从促销活动= b.activity B2,B2。
)
和(选择促销B3 EDATE)
在B3。活动= b.activity)
组由A2。名称)
一轮又一轮
-方法二:
-解释:如果促销时间没有重叠,那么促销表中只有一个主键列,所以在组中
使用(活动、姓名、EDATE)的条款将不会改变。但这将使HAVING子句使用姓名和EDATE
选择a.name,b.activity,和(a.price)为总价
从A销售,晋升为B
在a.saledate b.sdate和b.edate之间
通过b.activity,b.sdate,b.edate组,a.name
总(价格)全部(从销售A2中选择> =(和)价格
其中A2。名称> a.name和a2.saledate之间
b.sdate
和b.edate
组由A2。名称)
去
-方法三:
——使用CTE(SQL 2005的后版本)
与clearkstotal(名称、活动、总价)为
(
选择a.name,b.activity,金额(价格)
从A销售,促销B
在a.saledate b.sdate和b.edate之间
集团通过a.name,b.activity
)
选择c1.name,c1.activity,c1.totalprice
从clearkstotal C1
在总价=(选择最大(C2。总价)从clearkstotal C2
其中活动= C2活动)
去
删除表的促销活动
去
表销售下降