在Oracle中,子查询只能看到一级父级查询中的值。由于您有两个嵌套选择,因此内部的一个看不到外部的一个。
您可以先执行连接:
SELECT something, somthingelse, old_price
FROM (SELECT a.something, a.somthingelse, p.quote_price old_price,
row_number() over (PARTITION BY a.part_no
ORDER BY valid_from DESC) rnk
FROM article_table a
LEFT JOIN price_history p ON a.part_no = p.part_no)
WHERE rnk = 1;
你也可以使用一个PL / sql函数会返回前quote_price
从price_history
时提供的article_table.part_no
。