我可能已經讀了十幾個類似的線程,但是我一直無法使用它們來解決我的問題。我很接近,也許離解決方案只有一兩步之遙。如何在SQL中將多個行合併爲一個
我有我加載數據到這類似於這樣的表:
我想要的是將它們組合成一個單一行:
CustName | Model | Serial | GreenCount | BlueCount | RedCount
Freds | 123AB | L23456 | 987 | 1127 |
Jimmys | 111SS | L11234 | | 2245 |
Erikas | 123AB | L11331 | 19 | 10 | 12
的序列號是唯一的所以我嘗試使用T1.Serial = T2.Serial和T1.Serial = T3.Serial內部連接T1至T2以及T1至T3,但仍然使用NULLS獲取行,例如Erikas返回5行,其中只有一行擁有所有數據
我試着用在哪裏 「T1.MonthlyCount」(ETC)IS NOT NULL,但沒有任何篩選出的行:
Select T1.CustName
,T1.Model
,T1.Serial
,(Select T1.MonthlyCount Where T1.Color = 'BLUE') As BlueCount
,(Select T2.MonthlyCount Where T2.Color = 'GREEN') As GreenCount
,(Select T3.MonthlyCount Where T3.Color = 'RED') As RedCount
From Table1 T1
Inner Join Table2 T2
on T1.Serial = T2.Serial
Inner Join Table3 T3
on T1.Serial = T3.Serial
Where T1.MonthlyCount IS NOT NULL
AND T2.MonthlyCount IS NOT NULL
AND T3.MonthlyCount IS NOT NULL
Group By Serial, CustName, Model, Color, MonthlyCount
什麼我得到的是:
CustName | Model | Serial | GreenCount | BlueCount | RedCount
Freds | 123AB | L23456 | NULL | NULL | NULL
Freds | 123AB | L23456 | 987 | NULL | NULL
Freds | 123AB | L23456 | NULL | 1127 | NULL
Freds | 123AB | L23456 | 987 | 1127 | NULL <--Expected
Jimmys | 111SS | L11234 | NULL | NULL | NULL
Jimmys | 111SS | L11234 | NULL | 2245 | NULL <--Expected
Erikas | 123AB | L11331 | NULL | NULL | NULL
Erikas | 123AB | L11331 | 19 | NULL | NULL
Erikas | 123AB | L11331 | NULL | 10 | NULL
Erikas | 123AB | L11331 | NULL | NULL | 12
Erikas | 123AB | L11331 | 19 | 10 | 12 <--Expected
我只查找標記爲Expected的上述3行。任何援助將不勝感激。
您當前嘗試的許多問題。不過,我會首先建議你谷歌「SQL PIVOT」。 – 2014-09-23 18:31:43