1219223480 【 Access 2000 】


図の左のような重複データを、右のようにしたいと思っています。

 ・品名が重複しているものをひとつにしたい。
 ・日時が最新のものを残す。

左のテーブルを (品名:グループ化 / 日時:最大 ) にして、
それを別のテーブル2に書き出して、元のテーブルを削除して、
テーブル2を元のテーブルに書き込んで…とすれば、希望のものは出来るんですが、
他のテーブルを経由することなく、スマートに行かないものでしょうか。

各種アクションクエリ可、VBA可。
ご存知の方、よろしくお願いいたします。

※ 方法がない場合、「なし」の回答はお控えください。回答がつかなければ、方法がないものだと思って諦めます。
※ 回答に満足した時点で、それ以降の回答をオープンしない可能性があります。ご了承ください。

回答の条件
  • 1人2回まで
  • 登録:2008/08/20 18:11:25
  • 終了:2008/08/20 19:35:11

ベストアンサー

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012008/08/20 18:52:47

ポイント60pt
DELETE FROM テーブル名 AS T1
WHERE 日時 < (SELECT MAX(日時) FROM テーブル名 WHERE 品名 = T1.品名 GROUP BY 品名);

VBAで回してもいいけどクエリのほうが楽ですよね。

id:panana

回答ありがとうございます。

希望通りの処理ができました。


SELECT MAX(日時) FROM テーブル名 WHERE 品名 = T1.品名 GROUP BY 品名

  ↑

 この部分で、品名ごとの一番大きい日付を出して、

 テーブル名(テーブル1)の品名で、同じものがあれば、

 その日付より小さいものを消しなさい。


ということですよね。(英文直訳のようなひどい文になりましたが orz)

クエリの中にクエリを入れてる感じでしょうか?

全く思い浮かびませんでした。

ありがとうございました。

2008/08/20 19:34:00

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません