2017-02-28 46 views
1

我有一個表如下,集團島查詢與停產期間

create table #ph (symbol char(2), FisrtDate date, LastDate, value1 int, value2 int, value3 int) 
insert into #ph select AA, '20120101', '20130201', 1, 1000, 200 
insert into #ph select AA, '20130202', '20150101', 2, 300, 500 
insert into #ph select AA, '20150102', '20170101', 2, 300 , 500 
insert into #ph select AB, '20120104', '20150101', 1, 200, 500 
insert into #ph select AB, '20150104', '20170101', 1, 200, 500 
insert into #ph select AB, '20170106', '20170201', 1, 300, 500 

而且我想要的輸出一樣,

Symbol | date_from| date_to | value1 | value2 | value3 
    AA | 20120101 | 20130201 | 1  | 1000 | 200 
    AA | 20130202 | 20170101 | 1  | 300 | 500 
    AB | 20120104 | 20170101 | 1  | 200 | 500 
    AB | 20120106 | 20170201 | 1  | 300 | 500 

我要找組島嶼的問題,但我很困惑。

+7

我認爲你需要解釋一下你的「羣島」,以及它如何適用於這個數據是什麼意思。 –

回答

4

看看你的數據,如果我理解正確,你想顯示MIN,MAX日期的行沒有改變value1,value2和value3?

如果是這樣,那麼簡單GROUP BY應該做的:

SELECT symbol, MIN(FirstDate), MAX(LastDate), value1, value2, value3 
    FROM #ph 
GROUP BY symbol, value1, value2, value3 
+0

你說得對。這麼簡單,我在腦海裏一團糟。非常感謝。 –