--需要查询的结果: 
--
员工ID,上班时间,下班时间,上班地点,上一班员工编号,下一班员工编号 
--
  6      18:05    24:00      1            5              7 
1.
select ID,BeginTime,EndTime,DoorNo
        ,PreID
=(select top 1 ID from @T where DoorNo=t.DoorNo and EndTime<t.BeginTime order by EndTime desc)
        ,NextID
=(select top 1 ID from @T where DoorNo=t.DoorNo and BeginTime>t.EndTime order by BeginTime)
from @T t 
where ID=6
2.
SELECT A.*,C.ID AS 上一班员工编号,B.ID AS 下一班员工编号 
FROM @T AS A
    
CROSS APPLY(SELECT TOP(1) ID FROM @T 
                
WHERE BeginTime>A.EndTime
                   
AND DoorNo=A.DoorNo
                
ORDER BY BeginTime) AS B
    
CROSS APPLY(SELECT TOP(1) ID FROM @T
                
WHERE EndTime<A.BeginTime
                   
AND DoorNo=A.DoorNo
                
ORDER BY EndTime DESCAS C
WHERE A.ID=6

相关文章:

  • 2021-11-24
  • 2021-11-30
  • 2021-11-15
  • 2022-12-23
  • 2022-01-08
  • 2021-07-28
猜你喜欢
  • 2021-10-11
  • 2022-12-23
  • 2022-02-03
  • 2021-08-22
  • 2022-01-20
  • 2021-06-22
  • 2021-05-13
相关资源
相似解决方案