小编ebe*_*zer的帖子

夜班员工的先进和后出时间

我可以使用 min 和 max来让FirstIn - LastOut离开白班员工

select 
    UserId,
    [date], 
    min(convert(char(5), [Login], 108)) as FirstIN,
    max(convert(char(5), LogOut,108)) as LastOUT
from Employee
group by UserId, [date]
Run Code Online (Sandbox Code Playgroud)

但我不能为夜班员工做,比如下午 5:30 到第二天早上 2:30。同一天(第二天)他们将在下午 5:30 再次到来。

轮班表

select 
    UserId,
    [date], 
    min(convert(char(5), [Login], 108)) as FirstIN,
    max(convert(char(5), LogOut,108)) as LastOUT
from Employee
group by UserId, [date]
Run Code Online (Sandbox Code Playgroud)

员工表

UserID   ShiftName      Start   End     
2267     Night Shift-1  17:30   02:30 
Run Code Online (Sandbox Code Playgroud)

期望输出

UserID LogIn                    LogOut                    LogDate
2267   2016-01-04 20:52:08.000  2016-01-04 22:09:22.000   2016-01-04 00:00:00.000
2267   2016-01-04 23:00:07.000  2016-01-04 23:00:07.000 …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012

4
推荐指数
1
解决办法
4143
查看次数

标签 统计

sql-server ×1

sql-server-2012 ×1