Передача параметров во вложенные подзапросы
В выборке одно из выбираемых полей выглядит так:
(select operation_datetime
from (select operation_datetime, rownum rn
from (select operation_datetime
from mt_operation_history
where mt_id = moh.mt_id
order by operation_datetime desc)
)
...
где moh.mt_id - это обращение к самому внешнему запросу
Тут возможно обращаться во вложенном запросе к внешнему только если запрос вложен напрямую. А если во вложенном запросе есть ещё один вложенный запрос, то уже ошибка.
Пробовал выносить в with и from внешнего запроса, но всё равно, когда обращаюсь к ним из вложенного запроса, опять ошибка.
Ответы (1 шт):
Автор решения: 0xdb
→ Ссылка
with mt_operation (id, name) as (
select rownum, 'oper '||rownum
from xmlTable ('1 to 2')
),
mt_operation_history (id, operation_datetime) as (
select mod(rownum,2)+1, date'2020-03-23'+rownum/24
from xmlTable ('1 to 6')
)
select mop.id, mop.name, moh.lastDT
from mt_operation mop
join (
select id, max (operation_datetime) keep (dense_rank last order by operation_datetime) lastDT
from mt_operation_history
group by id) moh on moh.id = mop.id
order by id;
Такой запрос работает и выводит результат (также на db<>fiddle):
ID NAME LASTDT
---------- -------- -------------------
1 oper 1 2020-03-23 06:00:00
2 oper 2 2020-03-23 05:00:00
Пожалуйста, теперь бросьте в меня камень поясните, почему у вас не работает.