- - PR -
DB2:テーブルの集計
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-01-16 15:06
テーブルからグループ別に月間販売額合計と年間販売額合計を求めたいのですが、
どうも上手くSQL文を書くことができません。 ご教授よろしくお願いします。 <データテーブル> ID 販売日 販売額 ---------------------- 10 20050101 1,000 10 20050102 100 10 20050105 200 ・ ・ 10 20050331 600 20 20050102 2,000 20 20050103 1,500 20 20050105 500 ・ ・ 20 20050331 600 30 20050101 600 30 20050102 700 30 20050103 1,000 ・ ・ 30 20050331 500 <3月を指定した場合の結果> ID 月合計 期間合計 ---------------------- 10 35,000 123,500 20 11,500 43,000 30 61,000 152,400 月合計は3月の合計です。 |
|
投稿日時: 2006-01-16 17:30
GROUP BY、HAVINGでいけないかな。
|
|
投稿日時: 2006-01-16 18:36
月間の集計を求める方法がわからないのでしょうか?
年間の集計を求める方法がわからないのでしょうか? 月間、年間の集計がわかるのであれば、求めた月間、年間の集計をIDで結合すればいけそうですね。 ただ、年間にはあるけど月間には無いIDがあるのであれば外部結合を調べてみてください。 もっといい方法がありそうですが。 |
|
投稿日時: 2006-01-17 09:21
case式を使えばいいような気がします
参考サイト http://oraclesqlpuzzle.hp.infoseek.co.jp/7-21.html |
|
投稿日時: 2006-01-17 09:48
すごい CASE式を使うとできるのですね。
月集計、年集計をそれぞれ求めることはできるのですが 月と年の集計を一度に求める方法がわかりませんでした。 SELECT ID , SUM(CASE MONTH(販売日) WHEN 03 THEN 販売額 END) AS '月合計', SUM(CASE YEAR(販売日) WHEN 2005 THEN 販売額 END) AS '期間合計 FROM データテーブル WHERE YEAR(販売日)=2005 AND MONTH(販売日)<=03 GROUP BY ID ORDER BY ID 上のSQL文で求めることができました。ありがとうございました。 |
1