访问 - 如果存在具有较新日期的数据,如何删除记录

时间:2014-10-21 20:30:53

标签: sql ms-access access-vba

我需要从访问中删除一些记录。我的数据看起来像是

RDNUMB | RD SEQ | COUNTDATE | COUNT
-------+--------+-----------+--------
101200 | 10     | 3/25/12   | 120
101200 | 20     | 2/27/13   | 1400
101200 | 20     | 6/15/11   | 905
101200 | 20     | 10/1/07   | 1020

我需要找出一种方法来查看RDNUMB和RD SEQ,如果有更新日期的记录,则删除整个记录。在这种情况下,我需要删除日期为6/15/11和10/1/07的记录。
RD SEQ不仅仅是这个RDNUMB的唯一性,它被反复使用。

谢谢你的想法和时间

1 个答案:

答案 0 :(得分:0)

从SQL Perspective来看,这就是你想要做的事情:

DELETE T
FROM YourTable AS T
JOIN (  SELECT RDNUMB, RDSEQ, COUNTDATE
        FROM YourTable AS YT
        WHERE YT.RDNUMB = T.RDNUMB AND YT.RDSEQ = T.RDSEQ
          AND YT.CountDate <> (SELECT MAX(COUNTDATE) FROM YourTable 
                               WHERE RDNUMB = YT.RDNUMB AND RDSEQ = YT.RDSEQ)
) AS R
  ON R.RDNUMB = T.RDNUMB AND R.RDSEQ = T.RDSEQ AND R.COUNTDATE = T.COUNTDATE