実現したいこと
ACCESS2019 を使用しています。
テーブルA
明細データがはいっています。
顧客No | 商品No | 日付 | 数量 | 単価 |
---|---|---|---|---|
001 | 010 | 2024/03/01 | 2 | 100 |
001 | 010 | 2024/03/02 | 1 | 100 |
002 | 014 | 2024/03/01 | 1 | 150 |
002 | 014 | 2024/03/05 | 2 | 250 |
001 | 010 | 2024/03/07 | 1 | 100 |
テーブルA を 顧客No、商品No、日付 を各昇順に並べ替え
顧客No、商品No ごとの最終行を取得し、テーブルBを作成したいです。
テーブルB(今回作りたいテーブル)
顧客No | 商品No | 日付 | 数量 | 単価 |
---|---|---|---|---|
002 | 014 | 2024/03/05 | 2 | 250 |
001 | 010 | 2024/03/07 | 1 | 100 |
データ型
顧客No・商品No:短いテキスト、日付:日付/時刻型、数量・単価:数値型
発生している問題・分からないこと
テーブル作成クエリで、
顧客No・商品No は [ 集計:グループ化 ] を設定。
日付・数量・単価 に [ 集計:最後 ] の設定をした際に、思う結果になる時とならない時がありました。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
Googleで調べた中で、並べ替え順とテーブル作成時のデータ格納順はイコールではないので、今回のケースの場合、オートナンバーを振り最大値を取得する等の対策が良いと分かりました。
試したこと
流れとしては以下で作成しようと思っています。
- テーブルA 顧客No、商品No、日付 昇順に並び替え(目的:2で意図したナンバリングにするため)
- テーブルAにオートナンバー型のカラムを追加(調べていたら下記SQLの方法があると知りました)
- テーブルAを元にテーブルBを作成(IDの抽出条件にDMax関数を使用)
SQL
1ALTER TABLE [テーブルA] 2ADD COLUMN [ID] AUTOINCREMENT;
教えていただきたいこと
ここで2・3は出来たのですが、2を実施する前に、並べ替えをする方法が分からなくてつまづいております。(上記1)
説明不足の点がありましたらご指摘ください。ご教示のほど、お願いいたします。
また、そもそも処理の流れが良くないよ!と言う場合にも、別の方法をご教示いただけると助かります。
補足
特になし

回答1件
あなたの回答
tips
プレビュー