如何判断一年连续请假七天以上。显示数据
有张请假表A(工号,日期)
例如:1-7 号叫连续请假,如何是1-5号 7-8号请假就不算连续。星期六,星期日不过滤
有特殊假期过滤:例如五一、五二、五三请假不算,
工号 日期
例如: 10729 2011-2-1
10729 2011-2-2
10729 2011-2-3
10729 2011-2-4
10729 2011-2-5
20321 2011-2-8
显示 10729
求sql2000代码。谢谢
if object_id(‘[TB]‘) is not null drop table [TB]
go
create table [TB] (工号 int,日期 datetime)
insert into [TB]
select 10729,‘2011-2-1‘ union all
select 10729,‘2011-2-2‘ union all
select 10729,‘2011-2-3‘ union all
select 10729,‘2011-2-4‘ union all
select 10729,‘2011-2-5‘ union all
select 20321,‘2011-2-8‘
select * from [TB]
;with TT
as(
select 工号,日期,datediff(dd,ROW_NUMBER() over (partition by 工号 order by 日期),日期) as nn
from TB ),
T1
as(
select *,ROW_NUMBER () over(partition by 工号,nn order by getdate()) as N from TT )
select 工号 from T1 group by 工号 having COUNT(1) >=5 --如果是要大于7天就修改成 >7
/*10729
原文地址:http://www.cnblogs.com/tianshuilv/p/3761147.html