#sql #distinct
#sql #отдельный
Вопрос:
Я пытаюсь сформулировать инструкцию SQL, которая вернет список записей, которые отличаются в одном поле, но если присутствует дублирующая запись (на основе одного поля) с более новой датой в поле даты, тогда ее следует выбрать как «отдельную» запись.
ie.
Field 1 Field 2 Field 3
A 3/28/11 Jimmy
A 4/11/11 Tom
B 3/29/11 Harry
C 4/12/11 Tom
C 3/30/11 Jimmy
Это привело бы к:
A 4/11/11 Tom
B 3/29/11 Harry
C 4/12/11 Tom
Поле «Distinct» — это поле 1.
Комментарии:
1. Что, если у двух из них одинаковая дата? Где ваш первичный ключ?
Ответ №1:
SELECT A.Field1, A.Field2, A.Field3
FROM myTable A
INNER JOIN (
SELECT B.Field1, MAX(B.Field2) AS MaxDate
FROM myTable B
GROUP BY B.Field1) AS B
ON A.Field1 = B.Field1 AND A.Field2 = B.MaxDate
ORDER BY A.Field1
Примечание: Я не пробовал этот запрос и пишу его таким, каким он должен быть.
Комментарии:
1. Я подозреваю, что это ближе к моим потребностям, но фактическая база данных (Access2007) использует две таблицы и выглядит ближе к: