アプリ版:「スタンプのみでお礼する」機能のリリースについて

集計で困っています。
助けてください。

uriage_date(date型) uriage_kingaku
2005/01/01 00:15   2000
2005/01/01 12:20   2500
2005/01/02 00:00   1000 ←ここは前日分(2005/01/01)に
2005/01/02 05:15   1800
2005/01/04 12:30   2300

2005/12/31 20:20   5000
2005/12/31 22:45   1200

上の様なテーブルから

売上合計(1月分)
uriage_date     goukei_kingaku
2005/01/01      5500
2005/01/02      1800
2005/01/03      0

2005/01/31      9000

この様に1日毎(当日00:01~翌日00:00)の売上の合計金額
を一ヶ月単位で集計したいのですが、SQL文が解りません。
00:00の売上は前日の合計に入れたいです。
データの無い日も0円として欲しいです。

よろしくおねがいします。

A 回答 (3件)

違った。



select trunc(uriage_date - interval '1' minute,'dd') uriage_date,sum(uriage_kingaku) goukei_kingaku
from X
group by trunc(uriage_date - interval '1' minute,'dd')
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
おかげさまで出来ました。
助かりました。

お礼日時:2006/11/28 14:54

時間をずらすだけなら・・



select trunc(uriage_date - interval '1' minute,'dd') uriage_date,sum(uriage_kingaku) goukei_kingaku
from X
where trunc(uriage_date - interval '1' minute,'dd')

な感じで良いと思います。
    • good
    • 0

集計処理自体は、1分間ずらして日別集計するだけの話なので、何の問題もないと思いますが、


集計すべきデータの存在しない日を集計結果に反映するのは、面倒です。
(無いモノを生成するのは、本来SQLによる”問い合わせ”ではない。)

カレンダもしくは、それに準ずるデータを用いる必要があります。
(表関数とかを作れば、ロジックでカレンダを作れますけどね)

この回答への補足

回答ありがとうございます。
1分間ずらして日別集計するだけの話が上手く出来ませんTT
日毎だけであれば group by trunc(uriage_date)で出来たのですが、、、
集計すべきデータの存在しない日を集計結果に反映するのは
やめておきます。

補足日時:2006/11/27 17:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す