Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Kết hợp với nhau Kết nối bằng, tham gia bên trong và tổng hợp với Oracle

Có công việc nào như vầy không? Tôi đã gặp các trường hợp tương tự như trường hợp của bạn và tôi chỉ đơn giản là xóa liên kết khỏi truy vấn phân cấp và chỉ áp dụng nó sau đó để tránh mất hàng.

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. ORA-06502:PL / SQL:lỗi số hoặc giá trị:bộ đệm chuỗi ký tự quá nhỏ

  2. Tìm kiếm một trường varchar cho các giá trị số của một phạm vi nhất định

  3. Oracle:trình tự MySequence.currval chưa được xác định trong phiên này

  4. Chia varchar thành các cột riêng biệt trong Oracle

  5. Cách điền trường dấu thời gian với dấu thời gian hiện tại bằng Oracle Sql Loader