sql 求助

昨天 2012-04-18 07:21:01
如何判断一年连续请假七天以上。显示数据
有张请假表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
...全文
132 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
昨天 2012-04-19
  • 打赏
  • 举报
回复
兄弟有没有sql2000代码,谢谢
Mr_Nice 2012-04-19
  • 打赏
  • 举报
回复
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

11,849

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧