【发布时间】:2010-03-17 21:45:17
【问题描述】:
我有这个问题:
select acc_num
from (select distinct ac_outer.acc_num, ac_outer.owner
from ac_tab ac_outer
where (ac_outer.owner = '1234567')
and ac_outer.owner = (select sq.owner
from (select a1.owner
from ac_tab a1
where a1.acc_num = ac_outer.acc_num /*This is the line that gives me problems.*/
order by a1.a_date desc, a1.b_date desc, a1.c_date desc) sq
where rownum = 1)
order by dbms_random.value()) subq
order by acc_num;
我们的想法是从ac_tab 中获取所有acc_nums(不是主键),它们具有owner 或1234567。
由于ac_tab 中的acc_num 可能会随着时间的推移而更改owners,因此我正在尝试使用内部相关子查询来确保仅在最新时返回acc_num em> owner 是 12345678。自然,它不起作用(或者我不会在这里发帖;))
Oracle 给我一个错误:ORA-000904 ac_outer.acc_num is an invalid identifier。
我认为ac_outer 应该对相关子查询可见,但由于某种原因它不是。有没有办法修复查询,还是我必须求助于 PL/SQL 来解决这个问题?
(Oracle 版本为 10g)
【问题讨论】:
标签: sql oracle analytics correlated-subquery