プロが教える店舗&オフィスのセキュリティ対策術

あるテーブルに
ID、JANコード、価格、その他いくつかのフィールドがあります。

レコードの中から、JANが重複しているデータで、価格が一番小さいものを残して残りを削除したいのですが、どうしたら良いでしょうか?

例)
ID  JAN   価格
111 1234567  100 ← このレコード
123 1234567  200
124 1234567  500
234 8765431  700
237 8765431  600 ← このレコード
354 8765431  800

こんな感じで、ID100と237だけを生かして他を削除したいのです。
重複クエリで集計にして、最小を選ぶとIDもグループ化されてしまって、
うまくいきません。

環境はWinXP Pro+Access2007です。

どなたか、ご教授のほど、よろしくお願いいたします。

A 回答 (1件)

> ID100と237だけを生かして他を削除



ID111と237だけを生かして他を削除
の間違いでしょうか


以下のクエリでどうでしょうか(一例)
クエリのSQLビューに記述してみてください。

DELETE * FROM テーブル名 AS T1
WHERE ID NOT IN (SELECT TOP 1 ID FROM テーブル名 AS Q1 WHERE Q1.JAN = T1.JAN ORDER BY Q1.価格);


※2か所の「テーブル名」は正式なものに置き換えてください。
    • good
    • 0
この回答へのお礼

ありがとうございました!
少し改造が必要でしたが、無事目的を達成できました!

お礼日時:2009/11/02 12:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています