select ca.cust_ac_no, ca.ccy, ah.trn_dt,
(SELECT sum(COALESCE(hi.lcy_amount,0))
FROM actb_history hi
WHERE hi.ac_no='0013001600038' and hi.drcr_ind = 'C' and ah.trn_dt = hi.trn_dt
GROUP BY hi.ac_no,hi.drcr_ind) as Total_Credits,
(SELECT sum(COALESCE(hi.lcy_amount,0))
FROM actb_history hi
WHERE hi.ac_no='0013001600038' and hi.drcr_ind = 'D'and ah.trn_dt = hi.trn_dt
GROUP BY hi.ac_no,hi.drcr_ind) as Total_Debits,
((SELECT sum( COALESCE(hi.lcy_amount,0))
FROM actb_history hi
WHERE hi.ac_no='0013001600038' and hi.drcr_ind = 'C' and ah.trn_dt = hi.trn_dt
GROUP BY hi.ac_no,hi.drcr_ind)
-
(SELECT sum(COALESCE(hi.lcy_amount,0))
FROM actb_history hi
WHERE hi.ac_no='0013001600038' and hi.drcr_ind = 'D'and ah.trn_dt = hi.trn_dt
GROUP BY hi.drcr_ind,hi.drcr_ind )) as difference
from actb_history ah, sttm_cust_account ca
where ah.ac_no='0013001600038'
and ah.ac_no = ca.cust_ac_no
group by ca.cust_ac_no, ca.ccy, ah.trn_dt
上記のコードは、total_credits と total_debits に対応する値がある場合にのみ差を計算します
計算式は、クレジット - デビット = 差額です。問題は、一部のトランザクションが 1 つしかなく、もう 1 つが null であることです。そのため、null を追加した後の結果は null です。
私の望みは、null 値に対してゼロを表示し、減算を実行できるようにすることです。
助けてください。