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

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

Tôi nghĩ bạn cần THAM GIA NGOÀI TRỜI.

Về cơ bản, bạn có hai Tập dữ liệu như sau:

Set1: ID VAL     Set2: ID Val    => Expected Result:
       1  10            1   5       1  15
       2  20                        2  20
       3  30                        3  30

Vì vậy, bạn cần THAM GIA NGAY NGƯỜI RA ĐÚNG

Đối với SQL của bạn, nó sẽ là:

select  e.sol_id
       ,(sum(CASE WHEN e.INTEREST_IND = 'D' THEN e.AMOUNT_IN_LCY ELSE 0 END)
          - sum(CASE WHEN e.INTEREST_IND = 'C' THEN e.AMOUNT_IN_LCY ELSE 0 END)
          + sum(f.AMOUNT_IN_LCY)
        ) as Difference 
  from  tbaadm.INTEREST_DETAILS e
       ,tbaadm.CHARGE_DETAILS   f
 where  E.SOL_ID = F.SOL_ID (+)
 group  by e.sol_id, f.sol_id;

Dấu (+) biểu thị Bảng, cũng có thể là NULL. Một cách khác để viết nó sẽ là:

select  e.sol_id
       ,(sum(CASE WHEN e.INTEREST_IND = 'D' THEN e.AMOUNT_IN_LCY ELSE 0 END)
          - sum(CASE WHEN e.INTEREST_IND = 'C' THEN e.AMOUNT_IN_LCY ELSE 0 END)
          + sum(f.AMOUNT_IN_LCY)
        ) as Difference 
  from  tbaadm.INTEREST_DETAILS e
        LEFT OUTER JOIN
          tbaadm.CHARGE_DETAILS f
        ON E.SOL_ID = F.SOL_ID
 group  by e.sol_id, f.sol_id;

Phiên bản thứ hai tuân theo Chuẩn SQL, trong khi phiên bản đầu tiên (+) chỉ được Oracle hỗ trợ.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để liệt kê tất cả các thủ tục được lưu trữ trong cơ sở dữ liệu Oracle

  2. Tại sao và khi nào cần có JAXBElement trong JAXB?

  3. Cách tiếp tục vòng lặp while sau khi ngoại lệ được nêu ra trong SQL

  4. Cách tạo khóa ngoại trong Oracle SQL Developer?

  5. Làm cách nào để điền các ngày còn thiếu theo nhóm trong Oracle