2011-07-08 12 views
0

もう少し質問があります。私は、mysqlのテーブル複数行のSUM

cat | item | data | 
100 | 0 | 10 | 
102 | 1 | 3 | 
101 | 1 | 1 | 
100 | 0 | 40 | 
100 | 1 | 20 | 
102 | 0 | 3 | 
101 | 1 | 2 | 
100 | 0 | 30 | 
102 | 1 | 3 | 

james_bondは、このコードで私を助けた:

SELECT cat, SUM(IF(item = 0,1,0)) AS items0, 
    SUM(IF(item = 1,1,0)) AS items1 FROM table GROUP BY cat 

私は結果を得る:今、私は次のような結果を得るために別のルールを必要とする

categories | items 0 | items 1 
100  |  3  |  1 
101  |  0  |  2 
102  |  1  |  2 

を:

アイテム0とアイテム1のデータの合計が必要です:

categories | data 0 | data 1 
100  |  80 |  20 
101  |  0  |  3 
102  |  3  |  6 

誰かが私を助けることができたらうれしいです。

+1

はちょうどあなたがあなたの 'item'列と同じ方法で、' data'列をまとめます。それほど難しいことではありません。あなた自身の既存のソリューションに基づいたソリューションを試してみてください。 – joschi

答えて

3

それは同様のクエリする必要があります:

SELECT 
    cat, 
    SUM(IF(item = 0,data,0)) AS data0, 
    SUM(IF(item = 1,data,0)) AS data1 
FROM table GROUP BY cat; 
+0

WOW AWESOME !!!!!!! :Dありがとう!!!!これは私の試行よりもよく見える:D:D – bernte