Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Tambahkan jumlah dari dua tabel yang berbeda Oracle

Saya rasa Anda membutuhkan OUTER JOIN.

Anda pada dasarnya memiliki dua Dataset seperti ini:

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

Jadi, Anda membutuhkan OUTER JOIN yang TEPAT

Untuk SQL Anda akan menjadi:

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;

(+) menunjukkan Tabel, yang juga bisa NULL. Cara lain untuk menulisnya adalah:

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;

Versi Kedua sesuai dengan Standar SQL, sedangkan yang pertama (+) hanya didukung oleh Oracle.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa meneruskan parameter ke skrip t-sql?

  2. Bagaimana NOMOR Oracle memiliki Skala lebih besar dari Presisi?

  3. Bagaimana saya bisa mengubah NLS_DATE_FORMAT di PHP

  4. Bagaimana cara menerapkan ID tanpa celah dan ramah pengguna di NHibernate?

  5. Panggil fungsi Oracle dari Java