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

Mieszanie razem Połącz przez, łączenie wewnętrzne i sumowanie z Oracle

Czy coś takiego zadziała? Miałem przypadki podobne do twojego i po prostu usunąłem sprzężenie z hierarchicznego zapytania i zastosowałem je dopiero później, aby uniknąć utraty wierszy.

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. Zwijanie rekordów daty tylko wtedy, gdy wartość się nie zmienia — Oracle SQL

  2. stan SQL [99999]; kod błędu [17004]; Nieprawidłowy typ kolumny:1111 ze sprężyną SimpleJdbcCall

  3. ORA-00979:nie jest wyrażeniem GROUP BY podczas wykonywania mojego sql

  4. Instrukcja SQL VB.net do zapytania datownik sprzed roku

  5. ORA-01219:baza danych nie jest otwarta:zapytania dozwolone tylko w stałych tabelach/widokach