2012-01-13 3 views
1

Я работаю над проектом с MS Access 2010.Выбор 2 верхних строк отсортированных таблиц для каждого человек ID

людей с потребностями болезни, чтобы совпавшие против двух людей без болезни или управления. Эти два элемента управления должны быть самыми близкими по возрасту.

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

(Поле date_difference является абсолютным числом, поэтому даже если они моложе или старше, число всегда положительное - очевидно, большее число указывает, что они больше лет друг от друга).

Может ли кто-нибудь помочь?

К примеру ... (очевидно, все имена полностью составлены!)

For example...

Я хотел бы результат запроса для создания следующего:

output

Любая помощь будет высоко ценится!

Джеймс

ответ

1

Я надеюсь, что вся таблица настройки мнимая.

SELECT b.id, 
     b.disease_id, 
     b.disease_surname, 
     b.control_id, 
     b.control_surname, 
     b.date_difference 
FROM controls AS b 
WHERE b.id IN (SELECT TOP 2 id 
       FROM controls a 
       WHERE a.disease_id = b.disease_id 
       ORDER BY date_difference) 
+0

Конечно - все данные полностью составлены! - См. Мой пост (очевидно, все имена полностью составлены!) – jameslagan

+0

@ user1147976 Я имел в виду дизайн стола, а не содержимое. – Fionnuala

+0

Я не следую. Что вы имеете в виду? – jameslagan