高难度TSQL 问题一道

这道题目来源于博客园,原题要求有些简单,我稍作修改:

某公司网站上的广告位是轮播的,每天某一广告位最多可轮播的广告数量是有限制的,比如A广告位,每天只能轮播三个广告,但销售人员在销售广告位时并不考虑此限制,要求查询出合同表中,超过广告位轮播数量的合同。

合同表 T_Order

OrderID

Positioncode

Startdate

Enddate

1

A

2006-11-01

2006-11-03

2

C

2006-11-02

2006-11-03

3

B

2006-11-01

2006-11-04

4

A

2006-11-03

2006-11-04

5

C

2006-11-01

2006-11-02

6

B

2006-11-02

2006-11-05

7

A

2006-11-02

2006-11-03

8

A

2006-11-04

2006-11-05

9

C

2006-11-03

2006-11-04

10

C

2006-11-02

2006-11-04

11

D

2006-11-01

2007-05-03

12

D

2007-05-01

2007-05-05

广告位表 T_Product

Positioncode

Showcount

A

2

B

1

C

3    

D

1    

说明:对于广告位A来讲,轮播情况如下表

OrderID

2006-11-01

2006-11-02

2006-11-03

2006-11-04

2006-11-05

1

4

7

8

要求仅使用一条SQL语句查询出如下结果:注:不得使用自定义函数,变量,游标,存储过程等--这好像是废话哦!

可以查资料,问百度:

这是我在SQL2005中查询出来的

(不知道有没有高手可以十分钟搞定!我用时近半小时 有些知识点时间长忘了,毕竟不是专门搞数据库的)

 

原文地址:https://www.cnblogs.com/DotNet1010/p/1785490.html