こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

再 ACCESSのソートについて(必要なものだけ

テーブルにあるデータを以下のようにクエリーでソートしたく。

会員番号をユニークIDとする


○テーブルにあるデータ

注文日      会員番号  購入額   購入回数
2014/03/05   12345678   3675     10
2014/03/05   12345678   3675      9
2014/03/05   98765241   3675      3



上記について会員番号が同一であれば、購入回数が
最大のものだけを行表示させる(以下)ことは
可能でしょうか。


注文日      会員番号    購入額   購入回数
2014/03/05   12345678 3675    10
2014/03/05   98765241 3675     3


会員番号が重複している行は購入回数が最大の数の行だけ残したい。
(重複ありなし混在で1万ほどレコードがある)


お手数をおかけします!

投稿日時 - 2014-09-19 15:52:10

QNo.8760259

困ってます

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

> ○テーブルにあるデータ

テーブルにあるんですよね
テーブル名を ★★ と仮定します

クエリの 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.回数;


※ どちらが速いのかは、やってみてください

投稿日時 - 2014-09-19 18:06:35

補足

ありがとうございます。一番理想の解とおもいますが、PC端末が手元にないため週明けに
検証します!

投稿日時 - 2014-09-20 18:23:45

お礼

30246kikuさん

以下、検証したのですが、

SELECT * FROM ★★ AS Q1 WHERE 購入回数=
(SELECT Max(購入回数) FROM ★★ WHERE 会員番号=Q1.会員番号);


クエリーを実行した際に、
パラメーターで購入回数を要求されます。

>>これを表示させない方法でできないのでしょうか。


購入回数で絞り込み表示はしたくない。

投稿日時 - 2014-09-25 10:45:39

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

> 累積で溜まっていくので、直近の日が一番累積数が多いデー タです。
だったら#2さんので大丈夫

投稿日時 - 2014-09-20 20:13:11

補足

以下でクエリーを実行すると、購入回数(パラメーター)が要求されるのですが、
それを表示させない方法はないのでしょうか。

購入回数の絞込みはしない。



以下、30246kikuさんにもヒアリングしているのですが。。
お手数をおかけします。




30246kikuさん

以下、検証したのですが、

SELECT * FROM ★★ AS Q1 WHERE 購入回数=
(SELECT Max(購入回数) FROM ★★ WHERE 会員番号=Q1.会員番号);


クエリーを実行した際に、
パラメーターで購入回数を要求されます。

>>これを表示させない方法でできないのでしょうか。


購入回数で絞り込み表示はしたくない。

投稿日時 - 2014-09-25 10:59:58

お礼

かしこまりました。返信に感謝します。

投稿日時 - 2014-09-24 11:25:52

ANo.3

最大の購入回数が複数の注文日に存在したら、どうするんですか?

投稿日時 - 2014-09-19 19:57:14

補足

↑その場合は一番新しい日(直近)を採用します。

というか、、累積で溜まっていくので、直近の日が一番累積数が多いデータです。
この観点で直近の日で重複があっても表示は1行にしたい。
(bin-chanさん、難しいですか。これ。)

投稿日時 - 2014-09-20 18:26:58

お礼

重複する日があっても最大累積数を1行で表現したい。

投稿日時 - 2014-09-20 18:31:37

「会員番号」で昇順ソート指定
「購入回数」で最大指定ではいけませんか。

投稿日時 - 2014-09-19 16:24:50

補足

ごめんなさい、これはクエリー上でするのでしょうか。

またMAX関数を使うのでしょうか。

細かくてすみませんmm

投稿日時 - 2014-09-19 16:41:45

お礼

単に無駄な行(下)は省くという事であればこれで試します。
※シンプルですね

投稿日時 - 2014-09-19 16:42:51

あなたにオススメの質問