因此,我一直在各種論壇和資源網站上對此進行了大量的閱讀,但尚未找到找到我認爲適用於我的案例的解決方案。另外,我不敢相信這證明有多難;我認爲這種查詢會相當普遍。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