Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Есть таблица застрахованный(id) и полис(id, id_полиса, дата_создания, статус)

2.2K
21 мая 2008 года
0cool
54 / / 15.06.2006
Привет.
Подскажите решение следующией задачи.
Есть таблица застрахованный(id) и полис(id, id_полиса, дата_создания, статус).
Застрахованному может принадлежать несколько полисов(например, был в начале один, потом первый погасили и завели другой).

Как мне получить у каждого застрахованного полис с максимальной датой создания, причем у этого полиса выводится его статус.
412
22 мая 2008 года
grgdvo
323 / / 04.07.2007
Видимо как-то так:

Код:
select
  з.id,
  п.id,
  subq.max_дата,
  п.статус
from
  застрахованный з,
  полис п,
  (select
    п.id застр_id,
    max(п.дата_создания) max_дата
  from
    полис п
  group by
    п.id) subq
where
  з.id = п.id and
  п.дата_создания = subq.max_дата


в случае отсуствия альтернативного уникального ключа (id, дата_создания) в таблице полис, в выборку запроса попадут все полисы застрахованного выписанные в max_дата.

Если где ошибся, заранее мои извинения.

Оптимизаторы welcome! :)
37K
22 мая 2008 года
iyulka
12 / / 06.05.2008
Цитата: grgdvo
Видимо как-то так:

Код:
select
  з.id,
  п.id,
  subq.max_дата,
  п.статус
from
  застрахованный з,
  полис п,
  (select
    п.id застр_id,
    max(п.дата_создания) max_дата
  from
    полис п
  group by
    п.id) subq
where
  з.id = п.id and
  п.дата_создания = subq.max_дата



еще забыл соединить таблицу п с subq: and п.id=subq.застр_id

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог