Oracle
 sql >> база данни >  >> RDS >> Oracle

Смесване заедно Connect by, вътрешно съединение и сумиране с Oracle

Ще свърши ли работа нещо подобно? Имал съм случаи, подобни на вашия, и просто премахнах свързването от йерархичната заявка и го приложих едва след това, за да избегна загуба на редове.

SELECT TaskName, Sum(ts.hours) "TotalHours" 
FROM (
    SELECT replace(sys_connect_by_path(decode(level, 1, t.name), '~'), '~') As TaskName, t.id
    FROM tasks t
    START WITH PARENTOID=-1
    CONNECT BY PRIOR t.id = t.parent_id
    ) tasks
INNER JOIN timesheets ts ON tasks.id=ts.task_id
GROUP BY TaskName Having Sum(ts.hours) > 0 ORDER BY TaskName


  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

  2. Създайте файл на Excel (.xlsx) с помощта на PL/SQL

  3. Извличане на връщани стойности на pl/sql масив в java

  4. Как да форматирате числа в Oracle

  5. Следваща нула