• ベストアンサー

ACCESSで複数あるコードを分類して1レコードで集計したい

いつもお世話になっています。 ACCESS初心者です。ACCESS2000を使用しています。 下記のような表をACCESSで、集計したいと思っています。 顧客ID 商品コード 商品購入日 1    123     20050223 1    124     20050403 2    123     20050302 3    124     20041223 3    133     20050131 これを、1顧客1レコードとして集計したいのです。 それぞれの商品フィールドをつくり、各購入数と そのうち一番最近購入した商品コードと、日付を 顧客別に一覧表示したいのです。 顧客ID 商品123+124 数 123+124購入日 商品133 数 133購入日 1    124      2   20050403     2    123      1   20050302 3    124      1   20041223    133   1   20050131 ↑こんな感じです。 これを最終的には、csvで書き出したいと思っています。 色々試してみましたが、思ったような結果がでません。 ご教授よろしくお願いいたしますm(__)m

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

  • ベストアンサー
noname#60992
noname#60992
回答No.2

アクセスのクエリは、縦にあるデータを横に展開することはあまり得意でないような気がします。  まず123+124の集計クエリと133の集計クエリを別々に作ります。 それらのクエリとに顧客のリストと関連付けたクエリをもう一個作ればできると思います。  選択クエリを複数同時に使うというのは、データ数が多い場合はあまりお勧めしませんので、一旦仮のテーブルに書き出したほうが動作は安定するかもしれません。  最終的に、何をどう表示させたいかを考えてから、テーブルの構造を考えたら、もっと単純に作ることができると思います。

noname#15245
質問者

お礼

回答ありがとうございますm(__)m ご指導のようにクエリを分けるやりかたなら、 私の知識でも出来そうだと思いましたが、IDが重複してしまい、 最新の日付をとることが出来ませんでした・・・(T_T) EXCELのように複数ある商品コードをまとめたフィールドを作って、 最大値を取るようにしてみようと思います。

その他の回答 (1)

  • ganbaro
  • ベストアンサー率45% (43/94)
回答No.1

VBAを使っての処理しかできないと思います 考え方 SQLにてデータを顧客、商品 、日付(DESC)で並べ替え、顧客、商品で数量合計と日付の最大値を入手、この内容を1件づつよみ、顧客でブレークダウンにてテキスト形式で作成すればできますが、初心者では難しいと思います 挑戦してみてください。

noname#15245
質問者

お礼

回答ありがとうございます<(_ _)> クエリで何とかなるのかと、思ったのですが・・・(x_x) まだまだ初心者なので、SQLでの作業は時間がかかりそうです・・・。 今後の課題にしたいと思います。 ありがとうございました!

関連するQ&A

専門家に質問してみよう