In Oracle kunnen subquery's alleen waarden van bovenliggende query's op één niveau diep zien. Omdat je twee geneste selecties hebt, kan de binnenste de waarden van de buitenste niet zien.
Je zou eerst de join kunnen uitvoeren:
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;
Je zou ook een PL/SQL-functie kunnen gebruiken die de eerste quote_price
als resultaat geeft uit price_history
wanneer een article_table.part_no
. wordt gegeven .