Код: Выделить всё
select cast(pr."prt_date" as DATE) as "prt_date", p."pst_puid", max(p."pst_cost")
from PRICE_RELATIONS pr
inner join PRICES pp on (pr."prt_price" = pp."prc_id")
inner join POSITIONS p on (p."pst_price" = pp."prc_id")
where (pr."prt_date" >= :"fdate") and (pr."prt_date" <= :"todate")
group by cast(pr."prt_date" as DATE), p."pst_puid"
Код: Выделить всё
select cast(v."prt_date" as DATE) as "prt_date", p."pst_puid",
( select first 1 v2."pst_cost"
from VW_GROUPED_POSITIONS v2
where (cast(v."prt_date" as DATE) = cast(v2."prt_date" as DATE))
and (v."pst_puid" = v2."pst_puid")
order by v2."prt_date" desc
)
from VW_GROUPED_POSITIONS v
where (v."prt_date" >= :"fdate") and (v."prt_date" <= :"todate")
group by cast(v."prt_date" as DATE), v."pst_puid";
в общем, буду благодарен за советы или идеи
з.ы. fb2, индексы по всем используемым полям
з.ы.ы. я плохо искал или я реально один с такой проблемой? если не один тогда почему first/last не были реализованы? а если один, тогда я не понимаю как можно переделать архитектуру базы, чтобы решить эту задачу без лишнего гемора...
В общем, заранее спасибо...