Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wybór podrzędny w Oracle

W Oracle podzapytania mogą widzieć tylko wartości z zapytań nadrzędnych o jeden poziom głębokości. Ponieważ masz dwie zagnieżdżone selekcje, wewnętrzna nie widzi wartości z zewnętrznej.

Możesz najpierw wykonać dołączenie:

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;

Możesz również użyć funkcji PL/SQL, która zwróci pierwszą quote_price z price_history po otrzymaniu article_table.part_no .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle znajduje ograniczenie

  2. Błąd-ORA-22835:Bufor jest zbyt mały dla konwersji CLOB na CHAR lub BLOB na RAW

  3. Oracle:Wyświetl numer wiersza z klauzulą ​​„order by”

  4. Szukaj wewnątrz tabeli Typ rekordów

  5. Oracle otrzymuje klucze obce