I Oracle kan underfrågor endast se värden från överordnade frågor en nivå djup. Eftersom du har två kapslade markeringar kan den inre inte se värdena från den yttre.
Du kan utföra anslutningen först:
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;
Du kan också använda en PL/SQL-funktion som skulle returnera den första quote_price
från price_history
när det ges en article_table.part_no
.