2017-03-04 7 views
0

のJOIN:複数のSUMと私はテーブルを持っている1つのクエリを使用してMySQLに

member [member_id,member_name] 

と私の他のテーブルには、次のとおりです。

balance [balance_id,member_id,balance(transaction)] 

、今私はこれらのテーブルを結合し、SUM(バランス)を追加していますここでmember_idは同じです! 例:

メンバー:

member_id , member_name 
1, test_1 
2, test_2 

バランス

balance_id,member_id,balance 
1,1,-800 
2,1,1000 
3,2,500 

メンバーが参加し、バランス

member_id , balance 
1,200 
2,500 

注意:私は1つのクエリでこのすべてを持っています!あなたの期待される出力のために、これがどうなる

+1

質問がありますか?サンプルデータ、望ましい結果、実際の質問を含める必要があります。 –

+0

@ GordonLinoff実際に私の質問です:どのように複数の合計を1つのテーブル(1つの列)に使用します。非常に簡単な質問にサンプルを追加しました – Mohsen

答えて

0

select member_id, 
    sum(balance) balance 
from balance 
group by member_id 

を使用すると、メンバテーブルとそれに参加する必要がある場合は、ん:

select m.*, 
    b.balance 
from member m 
join (
    select member_id, 
     sum(balance) balance 
    from balance 
    group by member_id 
    ) b on m.member_id = b.member_id; 

もう一つの方法は、最初に参加した後、凝集を行うことです:

select m.member_id, 
    m.member_name, 
    sum(b.balance) balance 
from member m 
join balance b on m.member_id = b.member_id 
group by m.member_id, 
    m.member_name; 
+0

実際に私は参加する必要があります!何らかの理由で。 2番目のコードは真ですが、1つのクエリではありません! – Mohsen

+0

@ user6935676 - それは* 1つのクエリです。あなたが望むことはしませんか? – GurV

+0

@ user6935676 - 3つ目を追加しました。チェックしてください – GurV

関連する問題