2017-07-27 31 views
-2

変数が同じである場合、最小と最大の開始/終了日の単純なテーブルにテーブルを圧縮する方法を考えるのが難しいです。SQL Server:MinおよびMaxの開始日と終了日

私のクエリの結果が、このような一時テーブルを簡単な例として作成するとします。実際の結果セットは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、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 
関連する問題