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
given दिया जाता है ।