首页新闻找找看学习计划

sql如何找出每个月重复请假的数据行

0
悬赏园豆:30 [待解决问题]

比如一个表有四列,分别是工号、请假类型、开始时间、结束时间

sqlserver如何找出:比如十月份,员工的请假类型为“”事假”,且请假的时间段有重合的记录

要能批量找出有问题的情况,如果两条有重合,可以找出一条,也可以两条都找出来

不知道语句应该怎么写,请指教

KEVINSON的主页 KEVINSON | 初学一级 | 园豆:172
提问于:2016-11-15 20:43
< >
分享
所有回答(4)
0

表示看不懂你的需求,叙述一个需求怎么这么难

 

~扎克伯格 | 园豆:1797 (小虾三级) | 2016-11-15 21:20

比如说数据是:001262,事假,2016-11-14 08:00,2016-11-15 15:00

                    001262,事假,2016-11-15 14:00,2016-11-15 17:00

你看两条数据的请假时间段有重合,就是找请假有重复的记录,每个工号在同一个月内不允许有重复的,想请教sql怎么批量找出这些记录

支持(0) 反对(0) KEVINSON | 园豆:172 (初学一级) | 2016-11-15 21:24
0

是要查出哪些人请的事件时间有重复的?比如上面例子说的001262 11-15 15:00结束和11-15 1400开始,这种有重复的时间段的数据是吧?

晓菜鸟 | 园豆:2564 (老鸟四级) | 2016-11-16 09:23
0

select distinct a.工号 from (

select row_number() over( order by 工号) as rowid,* from tb

) a where exists
    (
   select 1 from (select row_number() over( order by 工号) as rowid,* from tb) b where
    a.工号=b.工号 and
   (a.开始时间<b.结束时间 and a.结束时间>b.开始时间  and a.rowid <> b.rowid)
   )

Daniel Cai | 园豆:10374 (专家六级) | 2016-11-16 11:05
0

select row_number() over( order by 工号) as rowid,* from tb

lwr | 园豆:48 (初学一级) | 2016-11-19 10:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册