V Oracle mohou poddotazy vidět hodnoty z nadřazených dotazů pouze o jednu úroveň hluboko. Protože máte dva vnořené výběry, vnitřní nevidí hodnoty z vnějšího.
Nejprve můžete provést připojení:
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;
Můžete také použít funkci PL/SQL, která by vrátila první quote_price
z price_history
při zadání article_table.part_no
.