group by句
色々と試行錯誤してやっていますが、なかなか自分の
思うような結果が得られないためご質問させて下さい。
テーブルが全部で3つあります。
テーブルA
id name
1 巨人
2 西武
テーブルB
id name
1 小笠原
2 ラミレス
3 中島
4 片岡
テーブルC
id テーブルAID テーブルBID 背番号
1 1 1 30
2 1 2 10
3 2 3 3
4 2 4 8
テーブルを結合し、テーブルCにある
背番号をテーブルAid,テーブルBidを元に
sumしたいのですがうまくいきません。
以下がそのSQLになります。
(1)サブクエリーを使ったSQL
この場合値が重複されて表示されてしまいます。
select a.name,b.name,c.name,
(select sum(背番号) from tableC c
where c.テーブルAId = a.id
group by c.テーブルAid
),
(select sum(背番号) from tableC c
where c.テーブルBid = bid
group by c.テーブルBid
)
from tableC c
inner join tableA a on a.id = c.テーブルAid
inner join tableB b on b.id = c.テーブルBid
(2) select a.name,b.name,c.name,
(select sum(背番号) from tableC c
where c.テーブルAId = a.id
),
(select sum(背番号) from tableC c
where c.テーブルBid = bid
)
from tableC c
inner join tableA a on a.id = c.テーブルAid
inner join tableB b on b.id = c.テーブルBid
group by c.テーブルAid
重複はされないのですが、group byが一つのみなので
ちゃんとした出力がされません。
他にやり方があるのかもしれませんが、お分かりになる方が
いらっしゃいましたら、ご教授お願い致します。
お礼
回答ありがとうございました。大変たすかりました。