sql >> Database >  >> RDS >> Oracle

Subselectie in orakel

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 .



  1. Best practices voor MySQL-databaseoptimalisatie

  2. vergelijk 2 strings in sql [eerste string bevat de substrings van de 2e string]

  3. Postgres:selecteer de som van waarden en tel deze opnieuw op

  4. mysql hoe een kolom van elke rij bij te werken met een bepaalde set waarden