В 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
.