显示一个只有第二个重复行删除的表,但保留第一行
问题描述:
所以,我有一个包含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查询,但是我的结果表没有任何重复或显示所有记录。 任何帮助将不胜感激。
答
这将创建一个新表:
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
是加入一个唯一的ID,以你的表给你一个选择吗? – Fionnuala 2012-04-18 19:05:59
不幸的是,没有。尽管我可以创建一个新的表格,它将显示没有唯一ID的表格的结果(如果有帮助的话)。我只想显示每个重复记录的第一行,包括剩余的不重复记录。 – Nams 2012-04-18 19:08:39