我有2個表格,Main和Units。SQL:如何根據同一表中的其他列的值創建新列
主表:
Todate Unit CategoryID Quantity
1/7/2012 1 S 300
1/7/2012 1 U 350
2/7/2012 2 S 220
3/7/2012 2 S 50
3/7/2012 2 U 330
4/7/2012 1 S 200
4/7/2012 1 U 180
S =銷售,U =升級
單位表:
UnitNum UnitName
1 Measures
2 Performance
我需要得到這樣的結果:
Todate UnitNum UnitName Sales Upgrades
1/7/2012 1 Measures 300 350
2/7/2012 2 Performance 220
3/7/2012 2 Performance 50 330
4/7/2012 1 Measures 200 180
意義我需要創建2列 - 銷售和升級,這取決於CategoryID中的值,我需要它們在同一行中。 我有什麼到目前爲止,這是
select Todate, Main.Unit, UnitName,
case when CategoryID = 'S' then Quantity end as Sales,
case when CategoryID = 'U' then Quantity end as Upgrades
from Main join Units on Main.UnitNum = Units.UnitNum
group by Todate, Main.Unit, UnitName
它給了我2個新列,但它們是兩個獨立的行..
我真的很感激任何幫助解決這一! 謝謝
我真的建議你使用主索引(唯一)的分類。而不是U和S使另一個名爲類別的表包含銷售和升級,並在主表中存儲每行的主要id在類別中。 – 2012-08-05 20:05:49
Matei Mihai,我沒有創建這個,這只是一個問題,我被問及不能回答 – Cat 2012-08-05 20:11:29
有沒有一個情況可能是2(或更多)行與'Todate'相同,相同'Unit'和相同'CategoryID'? – 2012-08-05 20:23:33