Здравствуйте!
Стоит задача - выбрать из справочника МедицинскиеПолюсаОрганизаций все ФизЛица и для каждого физЛица должна быть ссылка на элемент справочника и реквизит элемента справочника - ДатаОкончанияДействияПолиса. Причем у физ лица может быть несколько полисов и нужно выбрать только с максимальной датой окончания. Возможно ли это реализовать полностью в запросе или все равно придется результат запроса обходить в цикле потом для выполнения задачи ?
То есть имею :
Петров - полис1 - 01.01.13
Петров - Полис2 - 01.03.13
Иванов - полис1 - 01.01.13
Сидоров- Полис1 - 01.01.13
Сидоров- Полис2 - 01.05.13
Должно стать:
Петров - Полис2 - 01.03.13
Иванов - полис1 - 01.01.13
Сидоров- Полис2 - 01.05.13
Возможно ли это реализовать полностью в запросе или все равно придется результат запроса обходить в цикле потом для выполнения задачи ?
ВЫБРАТЬ
МедицинскиеПолюсаОрганизаций.Ссылка,
МедицинскиеПолюсаОрганизаций.Физлицо,
МАКСИМУМ(МедицинскиеПолюсаОрганизаций.ДатаОкончанияДействияПолиса) КАК ДатаОкончанияДействияПолиса
ИЗ
Справочник.МедицинскиеПолюсаОрганизаций КАК МедицинскиеПолюсаОрганизаций
СГРУППИРОВАТЬ ПО
МедицинскиеПолюсаОрганизаций.Ссылка,
МедицинскиеПолюсаОрганизаций.Физлицо
ВЫБРАТЬ
МедицинскиеПолюсаОрганизаций.Физлицо КАК Физлицо, МАКСИМУМ(МедицинскиеПолюсаОрганизаций.ДатаОкончанияДействияПолиса) КАК ДатаОкончанияДействияПолиса
ПОМЕСТИТЬ ВТМаксимальныеДаты
ИЗ
Справочник.МедицинскиеПолюсаОрганизаций КАК МедицинскиеПолюсаОрганизаций
СГРУППИРОВАТЬ ПО
МедицинскиеПолюсаОрганизаций.Физлицо;
ВЫБРАТЬ
МАКСИМУМ(МедицинскиеПолисы.Ссылка) КАК ПолисСсылка, МаксимальныеДаты.Физлицо КАК Физлицо, МаксимальныеДаты.ДатаОкончанияДействияПолиса КАК ДатаОкончанияДействияПолиса
ИЗ ВТМаксимальныеДаты КАК МаксимальныеДаты
ВНУТРЕНЕЕ СОЕДИНЕНИЕ Справочник.МедицинскиеПолюсаОрганизаций КАК МедицинскиеПолисы
ПО МаксимальныеДаты.ФизЛицо = МедицинскиеПолисы.ФизЛицо
и МаксимальныеДаты.ДатаОкончанияДействияПолиса = МедицинскиеПолисы.ДатаОкончанияДействияПолиса
СГРУППИРОВАТЬ ПО
МаксимальныеДаты.Физлицо,
МаксимальныеДаты.ДатаОкончанияДействияПолиса
(3)Так выбирает все полюса ... (4) Выбирает полюса с МАКС датой, skiller3000 огромное спасибо!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший