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



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

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,如果有日期更新的记录,则删除整个记录。在这种情况下,我需要删除日期为2011年6月15日和2007年10月1日的记录
RD SEQ不仅是该RDNUMB独有的,它被反复使用

感谢您的想法和时间

从SQL的角度来看,这就是您想要做的:

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

最新更新