PL/SQLでの、集計→結合→集計の仕方
いつもお世話になってます。
以前こちらで質問をさせていただいたのですが、
http://soudan1.biglobe.ne.jp/qa5076670.html
さらに分からないことが出てきたので、また質問させていただきます
【テーブル1】
(年月日) (班) (回数) (秒) (種類)
20090401|aaa| 10| 100 A
20090401|aaa| 20| 200 A
20090501|bbb| 10| 150 B
20090501|bbb| 20| 100 B
20090401|ccc| 10| 100 C
20090401|ccc| 30| 250 C
20090401|ddd| 15| 200 A
: : :
まずこれを集計し、件数を追加して
(班) (回数) (秒) (件) (種類)
aaa| 30| 300| 2 A
bbb| 30| 250| 2 B
ccc| 40| 350| 2 C
ddd| 15| 200| 1 A
: : : :
というようにまとめ、
【テーブル2】
(年月) (班) (円)
200904| aaa| 1000
200905| bbb| 1500
200904| ccc| 2000
200904| ddd| 1200
: : :
というテーブルと結合して
(年月) (班) (回数) (秒) (円×件) (種類)
200904| aaa| 30| 300| 2000 A
200905| bbb| 30| 250| 3000 B
200904| ccc| 40| 350| 4000 C
200904| ddd| 15| 200| 1200 A
: : : : :
とするのが前回までで
ここから更に種類で集計をして
(年月) (回数) (秒) (円×件) (種類)
200904 | 45| 500| 3200| A
200905 | 30| 250| 3000| B
200904 | 40| 350| 4000| C
としたいのですが、
SELECT
テーブル2.年月,
テーブル1集計.種類,
sum(テーブル1集計.回数),
sum(テーブル1集計.秒数),
sum(テーブル1集計.件数 * テーブル2.円)
FROM
(SELECT 年月日,
班,
種類,
sum(回数) 回数,
sum(秒数) 秒数,
count(*) 件数
FROM テーブル1
GROUP BY 班,種類,年月日) テーブル1集計,テーブル2
WHERE テーブル1集計.班=テーブル2.班
GROUP BY 種類,テーブル2.年月;
としたところ、最終的に出力したいテーブルの集計結果の
(回数) (秒) (円×件)が正しいものより多くなってしまいました。
長くなって申し分かりません。
どこが間違っているのか、わかる方いらっしゃいましたら
教えていただけないでしょうか??
お礼
目からウロコ、、。 難しく考えすぎていました。 bin-chanさん どうもありがとうございます☆