人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【 Access 2000 】

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

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

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

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

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

1219223480
●拡大する

●質問者: panana
●カテゴリ:コンピュータ
✍キーワード:access VBA いもの ひとつ アクション
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● kn1967
●60ポイント ベストアンサー
DELETE FROM テーブル名 AS T1
WHERE 日時 < (SELECT MAX(日時) FROM テーブル名 WHERE 品名 = T1.品名 GROUP BY 品名);

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

◎質問者からの返答

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

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


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

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

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

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


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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ