- 締切済み
アクセス クロス集計 売上本数
アクセスで各支店毎の過去の売上本数の集計をしたいのですが、どのように期間を指定すればよろしいでしょうか?集計したいのは、過去90日間 過去180日間 過去365日間です。 また、同時に各支店毎の在庫数も同列に集計することは可能でしょうか? 現在の在庫数 過去90日間 過去180日間 過去365日間 支店A 支店B 支店C
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- hatena1989
- ベストアンサー率87% (378/433)
> 売上本数のテーブルとは別に、在庫テーブルというのが別に存在して、同支店の在庫数も売上の隣に表示させたいのですが、クエリを統合すればよいのでしょうか? 在庫テーブルのフィールド構成とか、データの説明がないので、なんともいえませんが、 とりあえず、結合してみてはどうですか。 それでだめなら、そのSQL文を提示して、どのように希望の出力と異なるのか説明してください。。
- hatena1989
- ベストアンサー率87% (378/433)
補足 過去90日間の期間に、今日を含める場合は、不等号のイコールは削除してください。 [売上日] > Date()-90
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
- hatena1989
- ベストアンサー率87% (378/433)
何度もすみません。 前回の回答のままでも集計はできるのですが、365日以前のデータが多いと、重くなるので、 下記のフィールドを追加しておいてください。 フィールド 売上日 テーブル 売上実績 集計 Where条件 表示 チェックなし 抽出条件 >=Date()-365
- hatena1989
- ベストアンサー率87% (378/433)
- hatena1989
- ベストアンサー率87% (378/433)
在庫テーブルと売上実績テーブルのそれぞれのフィールド構成を提示していただけると回答しやすいですね。 希望のことは集計クエリ一つで実現できるはずです。 たとえば、売上実績テーブルのフィールド構成が、 支店名 売上日 売上本数 ならば、集計クエリで、下記のように設定すればいいでしょう。 フィールド / 集計 --------------------------- 支店名 / グループ化 過去90日間: IIf([売上日]>=Date()-90),[売上本数],0) / 合計 過去180日間: IIf([売上日]>=Date()-180),[売上本数],0) / 合計 過去365日間: IIf([売上日]>=Date()-365),[売上本数],0) / 合計 在庫数に関しては、在庫テーブルのフィールド構成、データ例を提示してください。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
Q、同時に各支店毎の在庫数も同列に集計することは可能でしょうか? A、可能です。 だが、どのようなやり方が適しているかは判りません。その理由の一つは、現在庫をどういう時点で計算・更新しているのかということ。もちろん、現在庫数そのものはテーブルに記録しないとは思いますが・・・。二つ目の理由としては、利用形態も考慮すべきだからです。仮に、バックエンドとフロントエンドで構築しているのであれば、フロントエンドの一時テーブルにて集計するということを考えるかも知れません。色々と考えると、「クロス集計で・・・」という選択肢は限りなく候補から遠のくかもしれません。いずれにしろ、質問には「可能です」と答えるにとどめざるをえないと思いますよ。
補足
早速どうもありがとうございます。 在庫テーブルと売上実績テーブルはデータをインポートして毎日更新します。 そのテーブルからクロス集計を利用してデータを確認したいと思っています。 色々調べていくと、ユニオン結合で出来るのではないかと思ったのですが、適切な方法があれば教えてください。 また、アクセスで集計する際の期間ですが、単純な年、月、日ではなく、今回のように過去90日以内、180日以内というのは、DateAdd関数等を使用するのでしょうか? どうぞよろしくお願いします。
- panacon
- ベストアンサー率31% (214/679)
nikoniko1977さんへ 私なら、下記のクエリの連続で、クロス集計クエリ結果をエクセルにエクスポートします。 (1)過去90日間(BetweenでDate()-90で挟む)のクエリ、フィールドに定数として”過去90日間”を追加 (2)過去180日間のクエリ、フィールドに定数として”過去180日間”を追加 (3)過去365日間のクエリ、同上 (4)上記の(1)をそのまま表示するクエリを作って保存する。その後、(2)をそのまま表示するクエリをデザインで作るようにして、SQLビューに切り替える。そのSQLビューをコピーして、(4)のクエリのSQLビューの続きにUNIONクエリで貼り付ける。(セミコロンを最後になるようにして、つなげるときには、間に”union”と書けばOKです。(3)のクエリを同様の方法で、4(4)のクエリに貼り付ける。((4)のクエリがユニオンクエリとなります。) (5)上記の(4)のクエリを基にして、クロス集計クエリを作る。過去90日間、過去180日間、過去365日間を列見出しにする。 (6)支店ごとの在庫数のクエリを作る。 (7)作成した(5)と(6)のクエリを支店名で連結する。 このクエリをエクセルにエクスポートするマクロを作ってフォームに貼り付けて完成です。
補足
売上本数のテーブルとは別に、在庫テーブルというのが別に存在して、同支店の在庫数も売上の隣に表示させたいのですが、クエリを統合すればよいのでしょうか?もしご存知でしたら教えてください。