gen |
Отправлено: 04.10.2005, 17:01 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 36
|
Привет всем.
Что-то туплю над тривиальным запросом.
Суть:
2 таблицы связанные по полю Cod
Object
(Id Serial,
Cod smallint,
Name text)
Property
(Cod smallint,
Shifr smallint,
Tm_rc timestamp)
Данные:
Object
1 1 Объект1
2 2 Объект2
Property
1 111 02.10.2005:10.05.10
1 333 03.10.2005:13.05.30
2 222 04.10.2005:11.14.14
2 444 04.10.2005:15.05.50
2 123 02.10.2005:15.25.50
Делаю объединение: select * from Object o,Property p where o.Cod=p.Cod
Нужно: отобрать все поля объединенных таблиц где запись Property объекта самая новая, т.е.:
id Cod Name cod_1 Shifr Tm_rc
1 1 Объект1 1 333 03.10.2005:13.05.30
2 2 Объект2 2 444 04.10.2005:15.05.50
Буду признателен за посказку.
|
|
avc* |
Отправлено: 04.10.2005, 17:39 |
|
Не зарегистрирован
|
Вариант (рабочий, но, возможно, не лучший — убегаю)
CODE |
Select
o.*
,p.*
From
Object o
,Property p
,(Select cod, max(tm_rc) as tm_rc From Property Group by cod) m
Where 1 = 1
and p.cod = m.cod
and p.tm_rc = m.tm_rc
and o.cod = m.cod
|
|
|
|