SQL:通过选择ID但显示名称来消除重复条目

时间:2014-06-17 13:48:43

标签: sql ms-access-2010

如何选择(ID)但仍然显示最新(Mod.Date)的不同(名称)以消除(名称)列中的重复项。我认为这很容易,但我从来没有这样做过。谢谢

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要一个子查询,为每个ID选择最新日期:

SELECT t.ID, max(t.`mod.date`) last_date
FROM YourTable t
GROUP BY t.ID

此子查询必须使用ID和日期链接到原始表。

SELECT t.ID,t.Name,t.`mod.date`
FROM YourTable t
    JOIN (SELECT t.ID, max(t.`mod.date`) last_date
            FROM YourTable t
            GROUP BY t.ID) tmp ON tmp.ID=t.ID AND tmp.`mod.date`=t.`mod.date`

这为您提供了所有ID的ID和(最新)名称。

更新:在Access中应该使用的另一种可能性是使用ALL比较:

SELECT t.ID,t.Name,t.`mod.date`
FROM YourTable t
WHERE t.`mod.date` >= ALL (SELECT max(t1.`mod.date`) 
                FROM YourTable t1 
                WHERE t1.ID=t.ID GROUP BY t1.ID)