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

SQL:Cách thêm giá trị theo cột chỉ mục

Nếu chúng ta chỉ giả sử 1 mức phân cấp. Nếu nhiều cấp độ của hệ thống phân cấp, điều này sẽ thú vị hơn.

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

Điều này thực hiện là một liên kết tự để nó đặt các bản ghi liên quan trên cùng một hàng. sau đó nó sẽ loại bỏ tất cả các bản ghi có giá trị trong rel_to_position vì chúng sẽ được thêm vào hàng mẹ.

chúng tôi sử dụng phép nối TRÁI vì không phải tất cả các bản ghi đều có giá trị liên quan và chúng tôi sử dụng phép liên kết để đảm bảo không cố gắng thêm null. (liên kết lấy giá trị khác rỗng đầu tiên)

Không chắc tại sao bạn cần trả lại relates_To_Position vì nó sẽ LUÔN LUÔN là giá trị rỗng ..



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ về hàm Oracle để lấy số ngày giữa hai ngày

  2. Thêm số tiền từ hai bảng khác nhau Oracle

  3. ClientDataSet TBCDField làm tròn

  4. Lấy thư từ Hộp thư bằng API PL / SQL Mail_Client

  5. Cách thay đổi giá trị bắt đầu trình tự db