同じ構造の2つのテーブルから一括で値を集計する方法について
同じ定義体の2つのテーブルから一回で集計関数(Sum)を使って合計値を
取得するSQL文について教えていただきたく投稿させていただきました。
・Table_A には
ID ZDAY CNT
-- -------- ---
1 2012/6/1 1
1 2012/6/2 2
2 2012/6/3 3
2 2012/6/4 4
・Table_B には
ID ZDAY CNT
-- -------- ---
1 2012/7/1 5
1 2012/7/2 6
2 2012/7/3 7
2 2012/7/4 8
というデータがあるとします。
テーブルが1つの場合には
SELECT ID,Sum(CNT)
FROM Table_A
GROUP BY ID;
として以下の結果が取得できます。
ID SUM(CNT)
-- --------
1 3
2 7
UNIONで結合してみたのですが・・・
SELECT ID,Sum(CNT)
FROM Table_A
GROUP BY ID
UNION
SELECT ID,Sum(CNT)
FROM Table_B
GROUP BY ID;
結果は、
ID SUM(CNT)
-- --------
1 3
1 11
2 7
2 15
となってしまいます。
最終的な取得結果を以下のようにしたい場合にはどのようなSQL文を
記述すればよいか、ご教示をお願い致します。
ID SUM(CNT)
-- --------
1 14
2 22
宜しくお願いします。
----------------------------------------------------------
<以下、コピペにてご使用下さい>
create table table_a(
id number,
zday date,
cnt number);
create table table_b(
id number,
zday date,
cnt number);
insert into table_a values(1,'2012/6/1',1);
insert into table_a values(1,'2012/6/2',2);
insert into table_a values(2,'2012/6/3',3);
insert into table_a values(2,'2012/6/4',4);
insert into table_b values(1,'2012/7/1',5);
insert into table_b values(1,'2012/7/2',6);
insert into table_b values(2,'2012/7/3',7);
insert into table_b values(2,'2012/7/4',8);
----------------------------------------------------------