2011-10-06 88 views
1

列值算我有兩個表:連接表的基礎上,

表阿爾法:

ID | Name 
--------- 
1 | A 
2 | B 
3 | C 

表測試:

ID | state 
---------- 
1 | 1 
1 | 2 
1 | 2 
2 | 1 

我想獲得類似的結果如下:

ID | Count(state=1) | Count (state=2) 
------------------------------------- 
1 | 1    | 2 
2 | 1    | 0 
3 | 0    | 0 

我該怎麼辦這與SQL? 我可以得到沒有ID 3結果的表格,但那不是我想要的結果。

在此先感謝!

回答

3
SELECT a.ID, 
     SUM(CASE WHEN b.state = 1 THEN 1 ELSE 0 END) AS State1Count, 
     SUM(CASE WHEN b.state = 2 THEN 1 ELSE 0 END) AS State2Count 
    FROM alpha a 
     LEFT JOIN beta b 
      ON a.ID = b.ID 
    GROUP BY a.ID 
+0

謝謝。關鍵詞LEFT就是答案! –