2012-04-18 73 views
2

所以,我有一個包含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

回答

2

這將創建一個新表:

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