2012-03-21 21 views
0

請求対象のジョブを含むテーブルがあります。各行には2つの列、 'value'と 'group'が含まれています。このように私がする必要がどのようなMySQL Sumグループ化の問題

ID Value Group 
1 2000.00 1 
2 2000.00 1 
3 1000.00 0 
4 1000.00 0 

は(彼らは同じグループ番号を持っているので)通常通り行3と4を返す(そう、一緒にグループ化されていない)、その後、行1および2の値を組み合わせている。

4000 //Rows 1 and 2 combined 
1000 //Row 3 returned as whole value 
1000 //Row 4 returned as whole value 

私は、クエリでGROUP BYを使用しようとしたので、

SELECT SUM(Value) AS totalValue FROM table GROUP BY Group 

のようなものは、しかし、これは

を返します。
4000 
2000 //Row 3 and 4 combined 

行3と4は同じグループ番号を共有しているため、行3と行4を結合しています。

私の問題は、私はグループ化したくないということです。彼らはゼロの値を持っているので、別々に戻ってほしい。私にこれをする方法はありますか?

答えて

2
SELECT Group AS Unique_ID, SUM(Value) AS totalValue FROM table WHERE Group>0 GROUP BY Group 
UNION 
SELECT id AS Unique_ID, Value As totalValue FROM table WHERE Group=0 
+0

こんにちはアジズ、すばらしい返信をありがとう。残念ながら、これは '4000 1000 1000'ではなく' 4000 1000'を返すだけです。どうしてこれなの? –

+0

これは、各行を一意にする別の列を選択する必要があるためです。クエリを更新しました。 – Aziz

+0

ええ、私もそれを考え出しました!助けてくれてありがとうAziz :-) –