- ベストアンサー
日次データをもとに決算集計できませんか?
こんにちは、最近データベースを使い始めた初心者です。 実家の仕事を手伝いたくて、決算集計をやりたいなと思っています。 今、毎日下のようなデータが作成されています。 (date型のデータ列, number型のデータ列のテーブルイメージです。) 2007/3/31 , 5 2007/4/1 , 10 2008/3/31 , 5 2008/4/1 , 10 このデータを日本の会計期間(4/1~翌年3/31まで)に合わせて、 次のような形に集計できないものでしょうか? 2006 , 5 2007 , 15 2008 , 10 何かアドバイス頂けると助かります。 どうぞよろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんなのでもいいのかな?? TABLE:TEST FIELD1 FIELD2 -------- ---------- 07-03-31 5 07-04-01 10 08-03-31 5 08-04-01 10 select to_char(add_months(field1,-3),'YYYY'),sum(field2) from test group by to_char(add_months(field1,-3),'YYYY') order by 1; add_months関数で3ヶ月前に持っていき、その日付の年で集計しています。
その他の回答 (1)
- o123459876
- ベストアンサー率59% (19/32)
SELECT * FROM test4; "NITIZI","SUUTI" "2007-03-31","5" "2007-04-01","10" "2008-03-31","5" "2008-04-01","10" --------------------------------------------------- with a as( select case when to_char(nitizi,'mm') in ('03','02','01') then to_char(add_months(nitizi,-12),'yyyy') else to_char(nitizi,'yyyy') end nitizi ,suuti from test4 ) select nitizi ,sum(suuti) as suuti from a group by nitizi order by 1 ; "NITIZI","SUUTI" "2006","5" "2007","15" "2008","10" ---------------------------------------------------
お礼
o123459876さん、 アドバイスありがとうございます。 勉強不足でwith句の読み方がよく分かっていません^^。 頂いた分、確認してじっくり読ませていただきます。 ありがとうございました。
お礼
naochancomさん、 回答ありがとうございました。 なるほど、-3ヶ月するんですね、 その発想は無かったです・・・。 ちょっとやってみます。 ありがとうございました。