• 締切済み

アクセス クロス集計 売上本数 

アクセスで各支店毎の過去の売上本数の集計をしたいのですが、どのように期間を指定すればよろしいでしょうか?集計したいのは、過去90日間  過去180日間 過去365日間です。 また、同時に各支店毎の在庫数も同列に集計することは可能でしょうか?     現在の在庫数   過去90日間  過去180日間 過去365日間 支店A    支店B 支店C

みんなの回答

回答No.8

> 売上本数のテーブルとは別に、在庫テーブルというのが別に存在して、同支店の在庫数も売上の隣に表示させたいのですが、クエリを統合すればよいのでしょうか? 在庫テーブルのフィールド構成とか、データの説明がないので、なんともいえませんが、 とりあえず、結合してみてはどうですか。 それでだめなら、そのSQL文を提示して、どのように希望の出力と異なるのか説明してください。。

回答No.7

補足 過去90日間の期間に、今日を含める場合は、不等号のイコールは削除してください。 [売上日] > Date()-90

回答No.6

2015/02/01 を100日に含むかどうかはさておき、まずは、添付図のような簡単なテストを!」

回答No.5

何度もすみません。 前回の回答のままでも集計はできるのですが、365日以前のデータが多いと、重くなるので、 下記のフィールドを追加しておいてください。 フィールド 売上日 テーブル  売上実績 集計    Where条件 表示    チェックなし 抽出条件  >=Date()-365

nikoniko1977
質問者

補足

売上本数のテーブルとは別に、在庫テーブルというのが別に存在して、同支店の在庫数も売上の隣に表示させたいのですが、クエリを統合すればよいのでしょうか?もしご存知でしたら教えてください。

回答No.4

すみません。前回の回答の式に間違いがありました。 フィールドに設定する式は下記に変更してください。 過去90日間: IIf([売上日]>=Date()-90,[売上本数],0) 過去180日間: IIf([売上日]>=Date()-180,[売上本数],0) 過去365日間: IIf([売上日]>=Date()-365,[売上本数],0) ) がひとつ余分でした。

回答No.3

在庫テーブルと売上実績テーブルのそれぞれのフィールド構成を提示していただけると回答しやすいですね。 希望のことは集計クエリ一つで実現できるはずです。 たとえば、売上実績テーブルのフィールド構成が、 支店名 売上日 売上本数 ならば、集計クエリで、下記のように設定すればいいでしょう。 フィールド / 集計 --------------------------- 支店名 / グループ化 過去90日間: IIf([売上日]>=Date()-90),[売上本数],0) / 合計 過去180日間: IIf([売上日]>=Date()-180),[売上本数],0) / 合計 過去365日間: IIf([売上日]>=Date()-365),[売上本数],0) / 合計 在庫数に関しては、在庫テーブルのフィールド構成、データ例を提示してください。

回答No.2

Q、同時に各支店毎の在庫数も同列に集計することは可能でしょうか? A、可能です。 だが、どのようなやり方が適しているかは判りません。その理由の一つは、現在庫をどういう時点で計算・更新しているのかということ。もちろん、現在庫数そのものはテーブルに記録しないとは思いますが・・・。二つ目の理由としては、利用形態も考慮すべきだからです。仮に、バックエンドとフロントエンドで構築しているのであれば、フロントエンドの一時テーブルにて集計するということを考えるかも知れません。色々と考えると、「クロス集計で・・・」という選択肢は限りなく候補から遠のくかもしれません。いずれにしろ、質問には「可能です」と答えるにとどめざるをえないと思いますよ。

nikoniko1977
質問者

補足

早速どうもありがとうございます。 在庫テーブルと売上実績テーブルはデータをインポートして毎日更新します。 そのテーブルからクロス集計を利用してデータを確認したいと思っています。 色々調べていくと、ユニオン結合で出来るのではないかと思ったのですが、適切な方法があれば教えてください。 また、アクセスで集計する際の期間ですが、単純な年、月、日ではなく、今回のように過去90日以内、180日以内というのは、DateAdd関数等を使用するのでしょうか? どうぞよろしくお願いします。

  • panacon
  • ベストアンサー率31% (214/679)
回答No.1

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)のクエリを支店名で連結する。 このクエリをエクセルにエクスポートするマクロを作ってフォームに貼り付けて完成です。