I Oracle kan underforespørgsler kun se værdier fra overordnede forespørgsler et niveau dybt. Da du har to indlejrede markeringer, kan den indre ikke se værdierne fra den ydre.
Du kan udføre joinforbindelsen 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 også bruge en PL/SQL-funktion, der ville returnere den første quote_price
fra price_history
når der gives en article_table.part_no
.