"Dmitry Yemanov"
> Была тут пару недель назад точно такая же тема, решение предлагалось.

решение было таким:

select rt.ID, rt.NAME, r.ID, r.DATE_START
from PRS$RESOLUTION_TYPES rt
join PRS$RESOLUTIONS r on r.ID = (select first 1 ID
                                  from PRS$RESOLUTIONS
                                  where ID_RT = rt.ID
                                    and ID_CLI = :ID_CLI
                                    and (DATE_START < :DATE_RES)
                                    and (DATE_START + rt.EXPIRATION > 
:DATE_RES)
                                  order by r.DATE_START desc)

но оно идет по PRS$RESOLUTIONS 4 раза (это в полторашке), точнее по кол-ву 
записей rt

думал, вдруг что появилось масштаба case, first или get_context, а я не 
знал, да и после SQL92 стандартов не читал, все как-то больше релизнотами 
обходимся

этот алгоритм реализуется на ХП или EXECUTE BLOCK на раз и на один проход, 
но чутье говорит мне:

select ID, DATE_DOC, distinct ID_RT  from PRS$RESOLUTIONS
order by DATE_DOC desc

именно это в ХП я делаю

-- 
Булычев Алексей
http://www.stella-npf.ru




--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---

Ответить