我当前正在使用这些sql语句。我的表的字段trx_type包含“ LD”或“ LP”。我可以通过执行如下所示的2条SQL语句来总结主体的数量。
select sum(principal) from loanhist where trx_type ='LD' and ac_no = '101300' and cycle = 1 --150000
select sum(principal) from loanhist where trx_type ='LP' and ac_no = '101300' and cycle = 1--- 73512.13
如果我从LP中减去LD,我将得到76,487.87
当我尝试通过这种方式使用CASE条件时:
-SUM(CASE WHEN trx_type='LD' THEN LoanHist.principal ELSE 0 END) -
SUM(CASE WHEN trx_type='LP' THEN LoanHist.principal ELSE 0 END) AS outstanding_balance
我得到了这个-229,463.61
。
由于LD带有负号,所以如果我应该从SUM中删除负号,它将加数字而不是减。
有人可以建议解决这个问题的更好方法!
答案 0 :(得分:1)
为了简化减法运算,您可以使用ABS()
来获取绝对值(正值):
SUM(CASE WHEN trx_type='LD' THEN ABS(LoanHist.principal) ELSE 0 END)