我有一个如下所示的表结构
FileId FileName CreatedBy CreationDate
------- ---------- ----------- ------------
File1_1 File1 User1 2014/09/12 17:10:49
File1_2 File1 User1 2014/09/11 17:45:49
File2_1 File2 User2 2014/05/11 17:45:22
File2_3 File2 User1 2014/08/11 17:47:22
我想编写一个查询,该查询将获取具有重复条目的名称的文件,并删除除具有最新日期的条目之外的所有条目。
例如,在当前示例中,它将删除 id 为 File1_2
和 File2_1
最佳答案
从 SELECT
查询开始,该查询标识您要删除的行。
SELECT y.CreatedBy, y.FileId, y.FileName, y.CreationDate
FROM YourTable AS y
WHERE
y.CreationDate <
DMax(
"CreationDate",
"YourTable",
"FileName='" & y.FileName & "'"
);
验证查询标识了正确的行后,将其转换为 DELETE
查询。
DELETE
FROM YourTable AS y
WHERE
y.CreationDate <
DMax(
"CreationDate",
"YourTable",
"FileName='" & y.FileName & "'"
);
关于sql - 从表中查找重复记录并删除除最新日期之外的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26063793/