2017-01-04 5 views
-3

У меня есть таблица с ниже образцомSQL Server 2008 Запрос на посещение время В и время Out

EmployeeID | Employee | PunchDate 
--------------------------------------- 
    11  | Sujith | 22/12/2016 08:16:00 
    11  | Sujith | 22/12/2016 13:35:00 
    11  | Sujith | 22/12/2016 17:23:00 
    11  | Sujith | 22/12/2016 21:09:00 
    12  | Tony  | 22/12/2016 14:06:00 
    12  | Tony  | 22/12/2016 22:39:00 
    13  | Jimmy | 22/12/2016 08:00:00 
    13  | Jimmy | 22/12/2016 17:12:00 
    14  | Nitha | 22/12/2016 18:50:00 
    14  | Nitha | 23/12/2016 07:05:00 

Я хочу построить запрос к нижеприведенным результатам:

EmployeeID|Name  |DutyTimeIn   |DutyTimeOut   |WorkingHours 
---------------------------------------------------------------------------- 
    11 |Sujith |22/12/2016 08:16:00 |22/12/2016 13:35:00 |05:19 
    11 |Sujith |22/12/2016 17:23:00 |22/12/2016 21:09:00 |03:46 
    12 |Tony  |22/12/2016 14:06:00 |22/12/2016 22:39:00 |08:33 
    13 |Jimmy |22/12/2016 08:00:00 |22/12/2016 17:12:00 |09:12 
    14 |Nitha |22/12/2016 18:50:00 |23/12/2016 07:05:00 |12:15 
+1

Пожалуйста покажите, что вы пробовали, что не сработало для вас. – STLDeveloper

+0

должен опубликовать фактический код для вашего вопроса. Есть много способов решить вашу проблему. – GNMercado

+0

можно проверить мой ответ – Chanukya

ответ

0
;with cte as 
(
select *,((row_number()over(partition by [ID] order by [DATE]) - 1)/2) as rn from #d 
) 
select id,name,min([DATE])[DATE],max([DATE])[NXTDATE], 
CAST(DateDiff(MI, min([DATE]), max([DATE]))/60 AS varchar)+':'+Cast(DateDiff(MI, min([DATE]), max([DATE]))%60 AS varchar)+':'+cast(DateDiff(s, min([DATE]), max([DATE]))%60 AS varchar) as [hh:mm:ss] 
from cte 
group by id,name,rn 

output 
id name DATE NXTDATE hh:mm:ss 
11 Sujith 2016-12-22 08:16:00.000 2016-12-22 13:35:00.000 5:19:0 
11 Sujith 2016-12-22 17:23:00.000 2016-12-22 21:09:00.000 3:46:0 
12 Tony 2016-12-22 14:06:00.000 2016-12-22 22:39:00.000 8:33:0 
13 Jimmy 2016-12-22 08:00:00.000 2016-12-22 17:12:00.000 9:12:0 
14 Nitha 2016-12-22 18:50:00.000 2016-12-23 07:05:00.000 12:15:0