如何计算一天的总记录时间?

问题描述 投票:1回答:1

如何计算SQL内部花费的总小时数?例如,对于该员工,内部花费的总时数为12-2 = 10。

EmpID   Enter/Exit  Time 
 2999   Entry   06:00AM 
 2999   Exit    12:00PM
 2999   Entry   01:00PM 
 2999   Exit    03:00PM 
 2999   Entry   04:00PM
 2999   Exit    06:00PM
sql sql-server-2008 ssrs-2008
1个回答
3
投票

在SQL Server 2008中,这很痛苦。假设进入/退出值已连接且时间确实是有效的日期时间,您可以执行以下操作:

select empid,
       sum(datediff(hour, t.time, t2.time)) as sum_hours
from t cross apply
     (select top (1) t2.*
      from t t2
      where t2.empid = t.empid and
            t2.enter_exit = 'exit' and
            t2.time > t.time
     ) as next_time
where t.enter_exit = 'enter'
group by empid;
© www.soinside.com 2019 - 2024. All rights reserved.