2016-10-05 2 views
0

나는 주위를 검색했지만이 같은 질문을 가진 다른 사람을 찾을 수 없었습니다.두 날짜 사이의 시간차에 따른 그룹

SQL Server (2008 R2)에서 작업하고 있습니다.

내 쿼리에서 다음 세 행의 데이터가 반환된다고 가정 해 봅니다. 내가해야 할 일은 Start Time과 End Time (Duration) 사이의 분 차이에 따라 처음 두 행을 하나의 SQL Server 또는 SSRS로 그룹화하는 것입니다. 한 행의 종료 시간과 다음 행의 시작 시간 사이의 경과 시간은 아무런 문제가되지 않습니다. 나는 Duration 만보고있다.

현재 결과 집합 :

+---------+------------+------------+----------+ 
| Vehicle | Start Time | End Time | Duration | 
+---------+------------+------------+----------+ 
| 12  | 1:56:30 AM | 2:07:47 AM | 11  | 
+---------+------------+------------+----------+ 
| 12  | 2:07:57 AM | 6:46:08 AM | 279  | 
+---------+------------+------------+----------+ 
| 19  | 2:55:02 PM | 3:45:59 PM | 53  | 
+---------+------------+------------+----------+ 

원하는 결과 집합 :

+---------+------------+------------+----------+ 
| Vehicle | Start Time | End Time | Duration | 
+---------+------------+------------+----------+ 
| 12  | 1:56:30 AM | 6:46:08 AM | 290  | 
+---------+------------+------------+----------+ 
| 19  | 2:55:02 PM | 3:45:59 PM | 53  | 
+---------+------------+------------+----------+ 

나는 그것이 그룹의 문제로이 같은 느낌,하지만 난 어떻게 그룹 여부에 따라 확실하지 않다 또는 시작 및 종료 시간이 15 분 미만인지 여부.

어떻게 수행 할 수 있습니까?

+0

막연하게 관련 질문은 [여기]입니다 시도 (http://stackoverflow.com/q/10934821/92546). – HABO

+0

15 분 동안 15 분 미만의 지속 시간을 항상 다음 차량 행에 넣거나 15 분 이내에 동일한 차량 행을 함께 그룹화해야한다고 말하고 있습니까? – iamdave

+0

@iamdave 그걸 붙잡고 물어봐 줘서 고마워. 단순히 기간 열을 기준으로합니다. 한 행의 종료 시간과 다음 시작 시간 사이에 경과하는 시간은 고려되지 않아야합니다. 내 질문을 좀 더 명확하게 업데이트했습니다. –

답변

1

내가 질문을 오해하지 않는 한,이

Select Vehicle 
     ,StartTime = min(StartTime) 
     .EndTime = max(EndTime) 
     ,Duration = sum(Duration) 
From YourTable 
Group By Vehicle 
+0

행을 그룹화하는 데 필요한 15 분의 창을 고려하지 않았다고 생각합니다. 같은 차량을 각각 다른 시간에 한 시간 씩 사용하면 몇 시간이 더 오래 걸릴 것입니다. – iamdave