- ベストアンサー
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
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
アクセスのクエリは、縦にあるデータを横に展開することはあまり得意でないような気がします。 まず123+124の集計クエリと133の集計クエリを別々に作ります。 それらのクエリとに顧客のリストと関連付けたクエリをもう一個作ればできると思います。 選択クエリを複数同時に使うというのは、データ数が多い場合はあまりお勧めしませんので、一旦仮のテーブルに書き出したほうが動作は安定するかもしれません。 最終的に、何をどう表示させたいかを考えてから、テーブルの構造を考えたら、もっと単純に作ることができると思います。
その他の回答 (1)
- ganbaro
- ベストアンサー率45% (43/94)
VBAを使っての処理しかできないと思います 考え方 SQLにてデータを顧客、商品 、日付(DESC)で並べ替え、顧客、商品で数量合計と日付の最大値を入手、この内容を1件づつよみ、顧客でブレークダウンにてテキスト形式で作成すればできますが、初心者では難しいと思います 挑戦してみてください。
お礼
回答ありがとうございます<(_ _)> クエリで何とかなるのかと、思ったのですが・・・(x_x) まだまだ初心者なので、SQLでの作業は時間がかかりそうです・・・。 今後の課題にしたいと思います。 ありがとうございました!
お礼
回答ありがとうございますm(__)m ご指導のようにクエリを分けるやりかたなら、 私の知識でも出来そうだと思いましたが、IDが重複してしまい、 最新の日付をとることが出来ませんでした・・・(T_T) EXCELのように複数ある商品コードをまとめたフィールドを作って、 最大値を取るようにしてみようと思います。