面试题整理:SQL(二)
1.
现有广告合同表Orders,表示广告在哪个广告位的哪几天需要播出
|
OrderID |
Positioncode |
Startdate |
Enddate |
|
1 |
A |
2015-11-01 |
2015-11-03 |
|
2 |
C |
2015-11-02 |
2015-11-03 |
|
3 |
B |
2015-11-01 |
2015-11-04 |
|
4 |
A |
2015-11-03 |
2015-11-04 |
|
5 |
C |
2015-11-01 |
2015-11-02 |
|
6 |
B |
2015-11-02 |
2015-11-05 |
|
7 |
A |
2015-11-02 |
2015-11-03 |
|
8 |
A |
2015-11-04 |
2015-11-05 |
|
9 |
C |
2015-11-03 |
2015-11-04 |
|
10 |
C |
2015-11-02 |
2015-11-04 |
产品表 Product,表示每个广告位每天最多播几个广告
|
Positioncode |
Showcount |
|
A |
2 |
|
B |
1 |
|
C |
3 |
要求查询出合同表中,超过广告位轮播数量的合同
Declare @Dup table (TmpDate datetime)
Declare @minDate datetime,@maxDate datetime
SELECT @minDate=MIN(StartDate),@maxDate=Max(EndDate) FROM Orders
WHILE @minDate<=@MaxDate
BEGIN
INSERT INTO @Dup VALUES (@minDate)
SET @minDate=@minDate+1
END SELECT distinct aa.* FROM
Orders aa INNER JOIN (
SELECT Positioncode,tmpdate,count(*) as cnt
FROM Orders a,@Dup b
where tmpdate between a.startdate and a.enddate
group by Positioncode,tmpdate )bb
ON aa.PositionCode=bb.PositionCode AND bb.tmpDate Between aa.StartDate AND aa.ENdDate
INNER JOIN Product cc ON bb.PositionCode=cc.PositionCode
WHERE bb.cnt>cc.showcount
Order by PositionCode
| OrderId | PositionCode | StartDate | EndDate |
| 1 | A | 2015-11-01 | 2015-11-03 |
| 4 | A | 2015-11-03 | 2015-11-04 |
| 7 | A | 2015-11-02 | 2015-11-03 |
| 3 | B | 2015-11-01 | 2015-11-04 |
| 6 | B | 2015-11-02 | 2015-11-05 |
2.
请用SQL语句实现:从T_GetLargerDebitOccur数据表中查询出所有月份的发生额都比101科目相应月份的发生额高的记录。
请注意:该表中有很多科目,都有1-12月份的发生额。
AccID:科目代码,Occmonth:发生额月份, DebitOccur:发生额。
| AccId | Occmonth | DebitOccur |
| 101 | 1 | 100 |
| 102 | 1 | 200 |
| 103 | 1 | 300 |
| 101 | 2 | 400 |
| 102 | 2 | 300 |
| 103 | 2 | 500 |
| 101 | 3 | 300 |
| 104 | 3 | 400 |
| NULL | NULL | NULL |
select a.* from T_GetLargerDebitOccur a
,(select Occmonth,max(DebitOccur) Debit101ccur from T_GetLargerDebitOccur where AccID='' group by Occmonth) b
where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur
结果:
| AccId | Occmonth | DebitOccur |
| 102 | 1 | 200 |
| 103 | 1 | 300 |
| 104 | 2 | 500 |
| 105 | 3 | 400 |
To be continue...
面试题整理:SQL(二)的更多相关文章
- Touch事件or手机卫士面试题整理回答(二)
Touch事件or手机卫士面试题整理回答(二) 自定义控件 1. Touch事件的传递机制 顶级View->父View->子View,不处理逆向返回 OnInterceptTouchEve ...
- 【IT笔试面试题整理】二叉搜索树转换为双向链表
[试题描述] 将二叉搜索树转换为双向链表 对于二叉搜索树,可以将其转换为双向链表,其中,节点的左子树指针在链表中指向前一个节点,右子树指针在链表中指向后一个节点. 思路一: 采用递归思想,对于二叉搜索 ...
- python面试题整理(二)
1.进程,线程,协程定义,有什么区别 进程是操作系统分配资源的最小单位,一个进程对应一块CPU 线程是进程中的某一个控制单元,是CPU调度的最小单元,线程之间相互独立,进程结束线程也会结束,一个进程至 ...
- iOS开发面试题整理(二)
8 类别的作用?继承和类别在实现中有何区别? 答案:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改. 并且如果类别和原来类中的方法产生名称冲突,则类别 ...
- php面试题整理(二)
索引,desc 和explain unset只是删除了变量名
- myBatis+Spring+SpringMVC框架面试题整理
myBatis+Spring+SpringMVC框架面试题整理(一) 2018年09月06日 13:36:01 新新许愿树 阅读数 14034更多 分类专栏: SSM 版权声明:本文为博主原创文章 ...
- SQL + Python 面试题:之二(难度:中等)
SQL + Python 面试题:之二(难度:中等)
- iOS 面试题整理(带答案)二
第一篇面试题整理: http://www.cocoachina.com/bbs/read.php?tid-459620.html 本篇面试题同样:如答案有问题,欢迎指正! 1.回答person的ret ...
- 尚学堂Java面试题整理
博客分类: 经典分享 1. super()与this()的差别? - 6 - 2. 作用域public,protected,private,以及不写时的差别? - 6 - 3. 编程输出例如以 ...
- MyBatis面试题整理
MyBatis面试题整理 1.什么是MyBatis? 答:MyBatis是一个可以自定义SQL.存储过程和高级映射的持久层框架. 2.讲下MyBatis的缓存 答:MyBatis的缓存分为一级缓存和二 ...
随机推荐
- C# 图片自由变换 任意扭曲
之前想过要做个地铁驾驶的游戏,其中想把一些原本是矩形图片弄成一个梯形,但是发现GID+上面没有类似的方法.于是在谷歌谷了一下.没有!只能找到令人垂涎的,并没有源码.按照自己的想法尝试了一两天,有点效果 ...
- nginx和apache的比较
1.nginx的IO是非阻塞的,apache的IO是阻塞的. nginx accept一个连接以后会把它放到EPOLL的消息循环中,APACHE需要启动一个线程,当系统线程达到瓶颈以后,会阻塞网络IO ...
- Xdebug文档(一)基本特性
基本属性(参数) xdebug.default_enable 类型: boolean,默认值: 1 这是xdebug的基本设置,默认在调试跟踪时显示错误信息.可以使用xdebug_disable()函 ...
- 与锤子手机HR的对话——创业没有联合创始人,CTO 等高管会把它当做自己的事业吗?
以下对话,是在被之前的锤子HR磨叽2周约面试折腾的火大的心态下进行…… 这个问题发到知乎,被一群人骂啊……cnblogs都是工程师,估计懂期权参加创业的同学多一些,有空前往知乎声援一下……在这里:ht ...
- ENVI软件操作【数据显示操作——Overlay菜单操作】
一.注记层(Annotation) 注记层是ENVI的一个数据类型,它的后缀名是.ann.往往作为栅格数据层,矢量数据层.三维场景会绘图图表的附加数据叠加在上面,还可以作为镶嵌图像时候的裁剪线.注记数 ...
- Type.js – 帮助你更好的控制网页字体排版
Type.js 是一款很好的网页字体排版工具.它可以让你使用新的 CSS 属性,在网页上试下更精细的排版控制.设置很简单.上传 type.js 到您的网站,并在你的 HTML 链接中引用.接下来,你就 ...
- Hello.js – Web 服务授权的 JavaScript SDK
Hello.js 是一个客户端的 Javascript SDK,用于实现 OAuth2 认证(或者基于 OAuth 代理实现的 OAuth1)的 Web 服务和查询 REST API. HelloJS ...
- Node.js Web 开发框架大全《路由篇》
这篇文章与大家分享优秀的 Node.js 路由(Routers)模块.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...
- javascript中的arguments对象
在js中一切都是对象,连函数也是对象,函数名其实是引用函数定义对象的变量. 1.什么是arguments? 这个函数体内的arguments非常特殊,实际上是所在函数的一个内置类数组对象,可以用数组的 ...
- crystal
1.在*{margin:0;padding:0;}下,标签自带样式会失去效果,如:blockquote.table下cellpadding,align等. 2.标签自带属性样式没有css高. 3.在c ...