Помогите с запросом ...

FANTAzeRus

Guest
Помогите с запросом ...

Имем таблицу:

ID | DOG_ID | DATE | NAIMEN | UID

и скажем данные:

1 | 1 | Дата1 | Договор 1 | 1
2 | 2 | Дата2 | Договор 2 | 1

Есть условие что данные договора изменять прото так ЗАРПЕЩЕНО возможна лишь официальная корректировка т.е. после корректировки договора с ID - 2 в частности измненени NAIMEN получим:
3 | 2 | Дата2 | Откорректированное наименование Договора 2 | 1

ВОПРОС: как при отображении списка договоров исключить отображение информации по договору до корректировки т.е. вывести лишь данные о последней корректировке???
 

Кром

Новичок
>ВОПРОС: как при отображении списка договоров исключить отображение информации по договору до корректировки т.е. вывести лишь данные о последней корректировке???

Например ввести одельное поле в котором ставить индикатор корректировки.
 

FANTAzeRus

Guest
Вот ИМХО САММЫЙ элегантный способ без добавления избыточных данных:

select ID, DOG_ID, (select first 1 NAIMEN from TABLE A where
A.DOG_ID=B.DOG_ID order by DATE DESC)
from TABLE B
 

Кром

Новичок
>select ID, DOG_ID, (select first 1 NAIMEN from TABLE A where
A.DOG_ID=B.DOG_ID order by DATE DESC)
from TABLE B

Не вижу, как это будет работать.
 

FANTAzeRus

Guest
Да ты прав ... поспешный вывод сделал ... буду вновь пробовать, искать ...

-~{}~ 25.11.04 13:00:

Вот это работает .... но абсолютно не ОПТИМАЛЬНО!!!

Select *
From TABLE A where DATE = (select max(DATE) from TABLE B where
A.DOGID=B.DOGID)

Придется все же использовать флаг корректировки ...
 
Сверху