显示一个只有第二个重复行删除的表,但保留第一行

问题描述:

所以,我有一个包含3列的表,其中第一列由ID组成,最后一列由日期组成。我需要的是,按日期对表格进行排序,并删除具有更晚日期的任何重复ID(并将ID保留为最早的日期)。 例如, 这是我的表原本的样子 -显示一个只有第二个重复行删除的表,但保留第一行

  • 123瑞恩01/01/2011
  • 345卡尔03/01/2011
  • 123丽莎01/02/2012
  • 870剔牙06/03/2012
  • 345卡尔07月01日

我希望我得到的表看起来像这样 -

  • 123瑞恩01/01/2011
  • 345卡尔03/01/2011
  • 870剔牙06/03/2012

我使用VBA访问代码,以找到一个解决方案上面,并且也使用了SQL查询,但是我的结果表没有任何重复或显示所有记录。 任何帮助将不胜感激。

+0

是加入一个唯一的ID,以你的表给你一个选择吗? – Fionnuala 2012-04-18 19:05:59

+0

不幸的是,没有。尽管我可以创建一个新的表格,它将显示没有唯一ID的表格的结果(如果有帮助的话)。我只想显示每个重复记录的第一行,包括剩余的不重复记录。 – Nams 2012-04-18 19:08:39

这将创建一个新表:

SELECT tbl.SName, a.ID, a.BDate 
INTO NoDups 
FROM tbl 
INNER JOIN (
    SELECT ID, Min(ADate) As BDate 
    FROM tbl GROUP BY ID) AS a 
ON (tbl.ADate = a.BDate) AND (tbl.ID = a.ID); 
+0

非常感谢Remou。它工作完美:) – Nams 2012-04-18 19:30:36