質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.73%

Accessで日付が最新日のレコードのみ抽出したい

解決済

回答 1

投稿

  • 評価 0
  • クリップ 0
  • VIEW 2,217

score 5

例えば、下記のような注文データがあった場合に、会員番号毎の最新日の注文のみのレコードを抽出したいです。

下記のようにグループ化をしてしまうと、商品カテゴリが意図してない本来の注文とは異なったカテゴリで抽出されてしまいます。
会員番号:グループ化
日付:最大
商品カテゴリ:最小

日付 会員番号 商品カテゴリ
2001/1/1 001 シャツ
2001/1/2 001 トレーナー
2001/1/3 001 ジーンズ
2001/1/1 002 シャツ
2001/1/2 002 ジーンズ
2001/1/3 001 トレーナー
  • クリップを取り消します

  • 質問の評価を上げたことを取り消します

  • 質問の評価を下げたことを取り消します

回答 1

checkベストアンサー

0

まず、
会員番号:グループ化
日付:最大
の集計クエリを作成します。

この集計クエリと元のテーブルを含むクエリを作成して、
会員番号同士、最大日付と日付を結合します。

これでご希望の結果になります。

SQLサブクエリを使えば一つのクエリにすることもできます。

SELECT T.*
FROM
 注文データ AS T INNER JOIN
 (SELECT 会員番号, Max(日付) AS 最大日付
  FROM 注文データ
  GROUP BY 会員番号) AS Q
 ON T.会員番号 = Q.会員番号 AND T.日付 = Q.最大日付;

投稿

編集

hatena19

VBA総合1位

score 21913

  • yii

    yii

    2021/01/22 15:23

    サブクエリを使用しなければならないのですね。
    ありがとうございます!

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.73%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る