- ベストアンサー
再 ACCESSのソートについて(必要なものだけ)
- 再 ACCESSのソートについて質問です。テーブルにあるデータを特定の条件でソートしたいです。
- 会員番号をユニークIDとして、テーブルにあるデータをソートしたいです。
- 会員番号が同一の場合は、購入回数が最大の行のみを表示させたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> ○テーブルにあるデータ テーブルにあるんですよね テーブル名を ★★ と仮定します クエリの SQLビューに以下を記述して表示を確かめてみます SELECT * FROM ★★ AS Q1 WHERE 購入回数= (SELECT Max(購入回数) FROM ★★ WHERE 会員番号=Q1.会員番号); これは、更新/追加等できますが、表示するだけで良ければ SELECT Q1.* FROM ★★ AS Q1 INNER JOIN (SELECT 会員番号, Max(購入回数) AS 回数 FROM ★★ GROUP BY 会員番号) AS Q2 ON Q1.会員番号=Q2.会員番号 AND Q1.購入回数=Q2.回数; ※ どちらが速いのかは、やってみてください
その他の回答 (3)
- bin-chan
- ベストアンサー率33% (1403/4213)
> 累積で溜まっていくので、直近の日が一番累積数が多いデー タです。 だったら#2さんので大丈夫
お礼
かしこまりました。返信に感謝します。
補足
以下でクエリーを実行すると、購入回数(パラメーター)が要求されるのですが、 それを表示させない方法はないのでしょうか。 購入回数の絞込みはしない。 以下、30246kikuさんにもヒアリングしているのですが。。 お手数をおかけします。 ↓ 30246kikuさん 以下、検証したのですが、 SELECT * FROM ★★ AS Q1 WHERE 購入回数= (SELECT Max(購入回数) FROM ★★ WHERE 会員番号=Q1.会員番号); クエリーを実行した際に、 パラメーターで購入回数を要求されます。 >>これを表示させない方法でできないのでしょうか。 購入回数で絞り込み表示はしたくない。
- bin-chan
- ベストアンサー率33% (1403/4213)
最大の購入回数が複数の注文日に存在したら、どうするんですか?
お礼
重複する日があっても最大累積数を1行で表現したい。
補足
↑その場合は一番新しい日(直近)を採用します。 というか、、累積で溜まっていくので、直近の日が一番累積数が多いデータです。 この観点で直近の日で重複があっても表示は1行にしたい。 (bin-chanさん、難しいですか。これ。)
「会員番号」で昇順ソート指定 「購入回数」で最大指定ではいけませんか。
お礼
単に無駄な行(下)は省くという事であればこれで試します。 ※シンプルですね
補足
ごめんなさい、これはクエリー上でするのでしょうか。 またMAX関数を使うのでしょうか。 細かくてすみませんmm
お礼
30246kikuさん 以下、検証したのですが、 SELECT * FROM ★★ AS Q1 WHERE 購入回数= (SELECT Max(購入回数) FROM ★★ WHERE 会員番号=Q1.会員番号); クエリーを実行した際に、 パラメーターで購入回数を要求されます。 >>これを表示させない方法でできないのでしょうか。 購入回数で絞り込み表示はしたくない。
補足
ありがとうございます。一番理想の解とおもいますが、PC端末が手元にないため週明けに 検証します!