使用row_number函数查询连续7天出勤的员工
来源:互联网 发布:25n16aa数据 编辑:程序博客网 时间:2024/05/10 12:27
/***************************************************
作者:herowang(让你望见影子的墙)
日期:2009.11.14
注: 转载请保留此信息
更多内容,请访问我的博客:blog.csdn.net/herowang
****************************************************/
declare @a table (d datetime,id int,flag bit)
insert @a select '2004-01-01',1,1
union all select '2004-01-02',1,1
union all select '2004-01-03',1,1
union all select '2004-01-04',1,1
union all select '2004-01-05',1,1
union all select '2004-01-06',1,1
union all select '2004-01-07',1,1
union all select '2004-01-08',1,1
union all select '2004-01-09',1,1
union all select '2004-01-01',2,1
union all select '2004-01-02',2,1
union all select '2004-01-03',2,1
union all select '2004-01-04',2,1
union all select '2004-01-05',2,1
union all select '2004-01-06',2,1
union all select '2004-07-08',2,1
union all select '2004-01-09',2,1
union all select '2004-01-10',2,1
查询连续7天初期的员工,那么必须满足一下条件:
下面的7行,日期必须是连续的,那么在第七行的日期为第一天的日期加7,行数也是加7
;with
wang as (select row=row_number() over (partition by id order by d),* from @a)
select distinct id from wang t
where exists(select 1 from wang where d=t.d+7 and row=t.row+7 and id=t.id)
相类似的问题,也可以去引申
- 使用row_number函数查询连续7天出勤的员工
- ROW_NUMBER()函数的使用
- ROW_NUMBER()函数的使用
- 在论坛中出现的比较难的sql问题:4(row_number函数+子查询 分组连续编号问题)
- row_number()over函数的使用
- row_number()over函数的使用
- row_number() over函数的使用
- row_number()over函数的使用
- Sqlserver使用排名函数Row_Number()函数查询指定范围的数据
- Oracle使用row_number()函数查询时增加序号列
- Oracle使用row_number()函数查询时增加序号列
- row_number()over函数的使用(转)
- row_number()over函数的使用.doc
- row_number()over函数的使用(转)
- T-SQL ROW_NUMBER()函数的使用
- Oracle row_number()over 函数的使用
- SQL SERVER 函数ROW_NUMBER的使用汇集
- oracle函数row_number() over ( )的简单使用
- 创建锚链接
- 扩展PHP:Zend API中对参数的处理
- JavaScript面向对象程序设计(5): 类
- 如何调试Php?
- 通俗易懂风趣活泼的朴素贝叶斯理论
- 使用row_number函数查询连续7天出勤的员工
- OGNL —— 数据运转的催化剂
- Reading Notes on NS2(8)
- 溢出的经典文章
- JavaScript面向对象程序设计(6): 封装
- Sqlite 嵌入式数据库移植和使用
- JS识别IE不同版本
- 在Struts2中使用OGNL
- 微软CRM使用(视频教学