2017-07-27 154 views
-2

我很難搞清楚當變量相同時,如何將表格縮減爲最小和最大開始/結束日期的簡單表格。SQL Server:最小和最大開始日期和結束日期

所以想象我的查詢結果創建一個像這樣的臨時表作爲一個簡單的例子。實際的結果集像是10,000行。

ID Start Date End Date Var1 Var2 
----------------------------------------- 
01 201201  201404  D  V  
01 201405  201502  D  V  
01 201503  999912  G  V  
02 201301  201412  S  T  
02 201501  999912  S  T  

我試圖做到的是,當VAR 1和VAR 2相同,採取的開始日期和結束日期最小值和最大值,使結果變得

ID Start Date End Date Var1 Var2 
---------------------------------------- 
01 201201  201502  D  V  
01 201503  999912  G  V  
02 201301  999912  S  T  

非常感謝任何人的幫助或指導。

編輯:忘了提及可能會有休息。

+1

你可以使用集合functionas和一羣以? '選擇ID,最小值(StartDate),最大值(EndDate),Var1,Var2從表格組ID,Var1,Var2' – chrisuae

+0

你到目前爲止嘗試過什麼?發佈您的查詢。 – Eric

+0

休息與什麼有關? –

回答

0

試試吧

declare @t table 
(
ID char(2) 
,[Start Date] int 
,[End Date] int 
,Var1 char(1) 
,Var2 char(1) 
) 

insert @t Values('01', '201201',  '201404',  'D',  'V')  
insert @t Values('01', '201405',  '201502',  'D',  'V')  
insert @t Values('01', '201503',  '999912',  'G',  'V')  
insert @t Values('02', '201301',  '201412',  'S',  'T')  
insert @t Values('02', '201501',  '999912',  'S',  'T')  


Select ID , min([Start Date]) [Start Date] , max([End Date]) , var1, var2 
from @t 
group by ID, var1, var2