2014-01-13 80 views
-2

我想將以下兩條記錄組合成一條記錄。SQL將兩條記錄合併爲一條

PCNUMMER EZONE1 EDATUM1  EZONE2 
10581 E  2013-06-03 A 
10581 B  2013-11-14 NULL 
10987 A  2013-11-11 NULL 

我想有什麼是

PCNUMMER EZONE1 EDATUM1  EZONE2 
10581 B  2013-06-03 A 
10987 A  2013-11-11 NULL 

因爲記錄的日期,其中EZONE1 =「B」是記錄在那裏EZONE1 =「E」的日期之後。但是當數據='NULL'時,那麼數據必須是舊記錄(如果不是NULL,並且如果存在較舊記錄),則必須採用該數據。

那麼我如何得到這個結果呢?

+0

問題要求代碼必須展示出一種最小的努力。告訴我們你試過的東西。 – Kermit

+0

嘗試使用having子句,因爲您似乎想要在where子句中使用「if」樣式語句。 http://www.w3schools.com/sql/sql_having.asp –

回答

0

可能的方式做到這一點,趁着這GROUP_CONCAT會忽略空值: -

SELECT PCNUMMER, SUBSTRING_INDEX(GROUP_CONCAT(EZONE1 ORDER BY EDATUM1 DESC), ',', 1), MAX(EDATUM1), SUBSTRING_INDEX(GROUP_CONCAT(EZONE2 ORDER BY EDATUM1 DESC), ',', 1) 
FROM SomeTable 
GROUP BY PCNUMMER