根据时间戳删除重复记录

Anu*_*nup 2 sql ms-access

我有一个表 tblCost,其中包含:

RecordID    ProjectID    Cost    AllocationMonthYear    TimeStamp    
112            1         $1000       10/17              10/16/2017 12:09:53 PM 
113            1         $1200       11/17              10/16/2017 01:14:45 PM 
114            1         $1000       10/17              10/16/2017 02:21:23 PM
Run Code Online (Sandbox Code Playgroud)

AllocationMonthYear 是分配预算的月份。我的问题是该软件位于共享驱动器上并被多个用户使用。他们经常添加同一个月的重复记录。我需要一个查询来删除基于最新时间戳的重复记录,即记录 114 应该被删除,因为它是 112 的重复并且比 112 晚。
任何指针都非常感谢

Jua*_*eza 5

DELETE FROM tblCost AS C1
WHERE EXISTS (SELECT 1
              FROM tblCost AS C2
              WHERE C1.AllocationMonthYear = C2.AllocationMonthYear    
                AND C1.ProjectID   = C2.ProjectID    
                AND C1.TimeStamp   > C2.TimeStamp)
Run Code Online (Sandbox Code Playgroud)

您也可以添加一个唯一索引以避免这种情况继续发生

Access 2003 中对多个字段的唯一约束