sql - Add amounts from two different tables Oracle -


i have 2 tables, interest table , charges table. interest table has debit interest , credit interest have been able difference using query:

select e.sol_id, (sum(case when e.interest_ind = 'd' e.amount_in_lcy else 0 end)- sum(case when e.interest_ind = 'c' e.amount_in_lcy else 0 end)) difference  tbaadm.interest_details e group e.sol_id; 

my output correct:

enter image description here

i need add amount in charges table have attempted this:

select e.sol_id, (sum(case when e.interest_ind = 'd' e.amount_in_lcy else 0 end)- sum(case when e.interest_ind = 'c' e.amount_in_lcy else 0 end) +  sum(f.amount_in_lcy)) difference  tbaadm.interest_details e,tbaadm.charge_details f f.sol_id = e.sol_id group e.sol_id, f.sol_id 

this query after hanging moment gives me output:

enter image description here

which wrong considering while subtracting debits credit in first tables has entries branch 000,001 , 003, how can add amount second table , maintain result set if second table not have entries branch 000 , 003?

i think need outer join.

you have 2 datasets this:

set1: id val     set2: id val    => expected result:        1  10            1   5       1  15        2  20                        2  20        3  30                        3  30 

so need right outer join

for sql be:

select  e.sol_id        ,(sum(case when e.interest_ind = 'd' e.amount_in_lcy else 0 end)           - sum(case when e.interest_ind = 'c' e.amount_in_lcy else 0 end)           + sum(f.amount_in_lcy)         ) difference     tbaadm.interest_details e        ,tbaadm.charge_details   f   e.sol_id = f.sol_id (+)  group  e.sol_id, f.sol_id; 

the (+) denotes table, can null. way write be:

select  e.sol_id        ,(sum(case when e.interest_ind = 'd' e.amount_in_lcy else 0 end)           - sum(case when e.interest_ind = 'c' e.amount_in_lcy else 0 end)           + sum(f.amount_in_lcy)         ) difference     tbaadm.interest_details e         left outer join           tbaadm.charge_details f         on e.sol_id = f.sol_id  group  e.sol_id, f.sol_id; 

the second version conforming sql standard, whereas first 1 (+) supported oracle.


Comments

Popular posts from this blog

Android layout hidden on keyboard show -

google app engine - 403 Forbidden POST - Flask WTForms -

c - Why would PK11_GenerateRandom() return an error -8023? -