2012-04-18 3 views
2

Итак, у меня есть таблица с тремя столбцами, из которых первый столбец состоит из идентификаторов, а последний столбец состоит из дат. Мне нужно, сортировать таблицу по датам и удалять любые повторяющиеся идентификаторы с более поздней датой (и сохранить идентификатор с самой ранней датой). Например, Это как моя таблица первоначально выглядит как -Показать таблицу с удалением только двух повторяющихся строк, но сохранить первую строку

  • 123 Ryan 01/01/2011
  • 345 Карл 03/01/2011
  • 123 Лиза 01/02/2012
  • 870 Тийа 06/03/2012
  • 345 Карл 07/01/2012

Я хочу, чтобы мой результирующая таблица, чтобы выглядеть следующим образом -

  • 123 Ryan 01/01/2011
  • 345 Карл 03/01/2011
  • 870 Тийа 06/03/2012

Я использую VBA код доступа, чтобы найти решение для вышесказанное и используемые SQL-запросы тоже, однако моя итоговая таблица либо не имеет дубликатов, либо отображает все записи. Любая помощь будет оценена по достоинству.

+0

добавляет уникальный идентификатор к вашему столу вариант для вас? – Fionnuala

+0

К сожалению, нет. Хотя я мог бы создать новую таблицу, которая отобразит результаты этой таблицы без уникального идентификатора (если это поможет). Я просто хочу отобразить первую строку каждой из повторяющихся записей, включая оставшиеся не тиражированные записи. – Nams

ответ

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