質問: '10' で集計した aテーブルの money と personの 値を求めたい。 **************************************************************** 初歩的な質問で申し訳ございませんが、 どなたかご教授願えませんでしょうか? よろしくお願いいたします。
回答: select cd,sum(money),sum(persion) from ( select b.cd1 cd,sum(a.money) money, sum(a.person) person from aテーブル a,bテーブル b where a.key_code = b.key_code group by b.cd1 union select b.cd2 cd,sum(a.money) money, sum(a.person) person from aテーブル a,bテーブル b where a.key_code = b.key_code group by b.cd2 union select b.cd3 cd,sum(a.money) money, sum(a.person) person from aテーブル a,bテーブル b where a.key_code = b.key_code group by b.cd3 ・・・ select b.cd10 cd,sum(a.money) money, sum(a.person) person from aテーブル a,bテーブル b where a.key_code = b.key_code group by b.cd10 ) group by cd,order by cd [結果] | cd | money | person || 01 | 5000 | 30 || 02 | 5000 | 30 || 10 | 5000 | 30 || 30 | 5000 | 30 || 51 | 5000 | 30 |・・・| 90 | 5000 | 30 | と出したいということかな? (違う気がしますが。) ・・・違うなら、サンプルの訂正([aテーブル]のkey_codeに002も入れましょう。)と、 結果を明示してください。 [aテーブル]のcode1,code2,code3が絡むのかもしれませんが、 今の提示では、1か2なので、[bテーブル]と結合結果は「なし」。 また、 key_code = '000' で結合といわれても、結合結果は「なし」。 最初のサンプルにあわせた形で続きを書かないと意味不明になってしまいます。