重複レコードを削除したいです。その際、職員ID、会社ID、組織IDなどが同一で、
作成日が一番古いレコードのみを残して削除したいです(作成日のみ相違あり)。
このようなSQLを考えたのですが、シンタックスエラーが回避できません。
参照1というテーブルに、職員ID、会社ID、組織ID、作成日などがあるという前提です。
Delete from 参照1 as 参照1_1
WHERE Exists
(select from 参照1
INNER JOIN 参照1
ON 参照1_1.会社ID = 参照1.会社ID
AND 参照1_1.組織ID = 参照1.組織ID
AND 参照1_1.職員ID = 参照1.職員ID
where
参照1_1.作成日 > 参照1.作成日)
これでどうでしょうか? 簡単に動作試験しましたが、DELETEがあるので 慎 重 に(!)検討して下さい。
DELETE * FROM 参照1 AS OT
WHERE 作成日 = (
SELECT MIN(作成日) FROM 参照1 AS IT
WHERE OT.会社ID=IT.会社ID AND OT.組織ID=IT.組織ID AND OT.職員ID=IT.職員ID
)
コピペバッファが古かったです。作成日のところは「作成日 >」です。
お返事遅くなりまして申し訳ございません。
こちらでできました。
作成日 > min(作成日)ですか、なるほどです。
どうもありがとうございます。