У меня есть два запроса с профсоюзом следующим образом:оракул: присоединение подзапроса с внешним запросом
select '00/00/0000' as payment_date , h1.customer_no
from payments h1
where not exists (select 1 from payments h2 where h2.customer_no = h1.customer_no and h2.ctype = 'CASH')
and h1.customer_no = 400
group by h1.customer_no
union
select to_char(h1.payment_date, 'MM/DD/YYYY') , h1.customer_no
from payments h1 inner join (select customer_no, max(payment_date) as max_date from payments where ctype = 'CASH' group by customer_no) subQ
on (h1.customer_no = subQ.customer_no
and h1.payment_date = subQ.max_date )
and h1.customer_no = 400
group by h1.payment_date, h1.customer_no
Теперь я хочу использовать этот союз в другом запросе.
select * from (
select '00/00/0000' as payment_date , h1.customer_no
from payments h1
where not exists (select 1 from payments h2 where h2.customer_no = h1.customer_no and h2.ctype = 'CASH')
and h1.customer_no = p.customer_no
group by h1.customer_no
union
select to_char(h1.payment_date, 'MM/DD/YYYY') , h1.customer_no
from payments h1 inner join (select customer_no, max(payment_date) as max_date from payments where ctype = 'CASH' group by customer_no) subQ
on (h1.customer_no = subQ.customer_no
and h1.payment_date = subQ.max_date )
and h1.customer_no = p.customer_no
group by h1.payment_date, h1.customer_no) sq,
payments p
where p.customer_no = 400
and sq.customer_no = p.customer_no
, когда я запускаю это, я получаю ORA-00904: "P" "CUSTOMER_NO":. Недопустимый идентификатор. Мне нужно присоединиться к h1.customer_no внешним запросам customer_no.
Я видел несколько запросов с рангом, но я не мог понять это. Как присоединиться к внутреннему запросу с внешним запросом?
благодарит заранее.