プロが教える店舗&オフィスのセキュリティ対策術

売上テーブル
日付   名前 金額
2007/01/01 A 100
2007/01/02 B 200
2007/01/05 C 500
2007/01/05 A 500

希望するクエリ結果
日付  件数 売上高
2007/01/01 1 100
2007/01/02 1 200
2007/01/03 0  0 << これを表示したい
2007/01/04 0  0 << これを表示したい
2007/01/05 2 1000

売上.日付 でグループ化すると、レコードの無い日付が表示されません。
集計期間内の全日付が表示されるようにするには、どうすればよいのでしょうか?
別に日付テーブルを作らなければならないのでしょうか?

A 回答 (2件)

>別に日付テーブルを作らなければならないのでしょうか?


テーブルである必要はないですね
期間をカバーする日付に抜けのないクエリを作ればいけます

作り方

数字だけのテーブルを用意します

num
0
1
2


99 <- 予測される期間の最大日数+余裕

このテーブルからクエリを作ります
日付: DateAdd("d",[num],DMin("日付","売上テーブル"))
このフィールドの抽出条件欄に
<=DMax("日付","売上テーブル")

このクエリを元のテーブルに外部結合します
    • good
    • 5
この回答へのお礼

なるほど。勉強になります。
ありがとうございました。

お礼日時:2007/03/01 18:25

クエリーを実施するのであれば、多分


> 別に日付テーブルを作らなければならないのでしょうか?
その通りだと思います

レポートで出力する際にと言うなら、VBAで細工(NextRecordプロパティ)して、出力すれば日付テーブル無しで可能ですが・・・
    • good
    • 0
この回答へのお礼

ありがとうございます。
基本的にはそういうことなんですね。
ありがとうございました。

お礼日時:2007/03/01 18:21

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A