因此,我一直在各种论坛和资源网站上对此进行了大量的阅读,但尚未找到找到我认为适用于我的案例的解决方案。另外,我不敢相信这证明有多难;我认为这种查询会相当普遍。Oracle中的嵌套子查询限制
基本上我在这里做的是通过联合查询两个历史表(tbl_b和tbl_c),以获得特定的里程碑日期 - 对于这个日期可能有多个结果...我然后希望找到最近的这些结果,使用最大值。此日期然后作为主查询中的列返回。
我的问题是,在第三层子查询中,我需要从顶部查询(tbl_a)中的表引用标识符值。
我知道相关的查询只能引用他们的父查询 - 所以,我卡住了。
编辑1 我正在寻找的目标日期很可能(但不一定)在结果集中是唯一的。这是数据记录的时间戳。我正在查找历史中与tbl_a中每列相关的最新条目。为此创建一个SQL小提琴。
见下面的示例:
select tbl_a.col_a,
tbl_a.col_b,
(
select max(target_date)
from
(
select tbl_b.target_date
from tbl_b
where tbl_b.tbl_a_id = tbl_a.id and
tbl_b.flag = 1 and
tbl_b.milestone_id = tbl_a.milestone_id
union
select tbl_c.target_date
from tbl_c
where tbl_c.tbl_a_id = tbl_a.id and
tbl_c.flag = 1 and
tbl_c.milestone_id = tbl_a.milestone_id
) most_recent_target_date
)
from tbl_a
1)你能提供一个SQL小提琴(http://sqlfiddle.com/)用示例数据来说明你的问题? 2).target_date值是否唯一? – chabzjo