• ベストアンサー

初歩的なアクセスの質問

各月の売上データがテーブルとしてありますが、それをID毎に時系列で集計したいのですが、どのように出来ますか? 今の問題点は、クエリで算出しようとしても、各月の同じIDしか算出されません。

質問者が選んだベストアンサー

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

集計クエリで、ID、月を「グループ化」、売り上げを「合計」とすると、月別、ID別の売り上げ計が出せます。 IDの抽出条件に特定のIDを入れた場合はそのIDのデータだけの合計になります。

myks0001
質問者

お礼

ご回答頂きましてありがとうございます。 ご回答頂いたとおりに、作業進めているのですがなかなか上手くいかないようです。 理由は、 各月毎の売上テーブルには、顧客ID,商品名,売上計上月,売上金額の4つのフィールドがあります。顧客IDによっては、複数の商品名があるので、テーブル上では同じ顧客IDが複数回記載されています。それが原因なのか当月(顧客IDが複数記載されている)と前月(顧客IDが1回だけ記載されている)を集計クエリでした場合、時系列で見るとなぜか前月分の売上が当月に混在してしまっているようで、クエリでの当月売上がテーブル上での売上よりも増加してしまっている現象が発生しています。 あと、全顧客IDリストのテーブルもあるのですが、それを当月テーブル及び前月テーブルと関連付けるとどうも売上総額が単月テーブルの売上総額よりも増加してしまっています。 お知恵を拝借できますと幸いです。

その他の回答 (1)

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.2

(私は、アクセスでリレーションシップを使ったことがないので) これで直るかどうかは、はっきりと申し上げられませんが、、、 IDの「結合の種類」で、 「顧客テーブル」の全レコードと「売り上げテーブル」の同じ結合フィールドのレコードだけを含める。 というように設定すると何か変わりますか? これは、複数の売り上げテーブルがあるならすべてをそのようにする必要があると思われます。 基礎的な話をするなら、 ・「売り上げテーブルを月別にする意味があるのか」から考えるべきだと思います。 通常は、まとめて売り上げテーブルをつくりクエリなどで必要な範囲のみを参照することが多いです。 そのほうが、毎月新しいテーブルを作る必要もないですし、(リレーションシップなども単純になるはずです。)   ごく稀に ・データ量が多くdbの負荷が大きすぎる場合、 ・定期的に古いデータを削除しながら運用する場合 ・月次処理や年次処理、統計情報を作るのに時間がかかりすぎる場合 などは、月別のような形でテーブルを設計してあるものが存在していることは事実ですが、、、 ストレージの価格が現在の何百倍という時代に設計されたもので、運用を引き継ぐためにそのような形を維持しているだけで、現在設計するならそのような形にはしないと思います。

関連するQ&A