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

SQL:Jak dodawać wartości według kolumn indeksu

Jeśli przyjmiemy tylko 1 poziom hierarchii. Jeśli wiele poziomów hierarchii staje się bardziej interesujące.

SELECT A.Value+coalesce(B.Value,0) as Value
     , A.Position
     , A.Relates_to_Position
     , A.Type
FROM Table A
LEFT JOIN Table B
  on B.Relates_To_Position = A.Position
WHERE A. Relate_to_Position is null

To, co robi, to sprzężenie własne, dzięki czemu powiązane rekordy są umieszczane w tym samym wierszu. następnie eliminuje wszystkie te rekordy z wartością w related_to_position, ponieważ zostaną dodane do wiersza nadrzędnego.

używamy sprzężenia LEFT, ponieważ nie wszystkie rekordy będą miały powiązaną wartość i używamy koalescencji, aby zapewnić, że nie zostaną dodane wartości null. (coalesce przyjmuje pierwszą niepustą wartość)

Nie jestem pewien, dlaczego musisz zwrócić related_To_Position, ponieważ ZAWSZE będzie null.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z Oracle 10g CLOB z Grails 2.0.1

  2. Zamieszanie z Oracle CONNECT BY

  3. Oracle scala stałe w jedną tabelę

  4. skrypt powłoki, aby znaleźć nazwę pliku i liczbę wierszy każdego pliku, teraz wstaw ten rekord do tabeli Oracle

  5. Oracle Regexp nie działa w SQL