[英]SQL sum of two fields
我有一個包含以下字段的表
vchnrno credit debit amount
JV1 BA10 0 100
JV1 BA11 0 10
JV1 0 BC10 90
JV1 0 BC11 20
通常這里的每個合資企業的貸方總和=借方總和
學分 = BA10 的總和 + BA11 = 110
借方 = BC10 之和 + BC 11 = 110
我想找到所有借方總和 - 貸方總和 > 0 的合資企業
看起來SUM
+ CASE
可能會完成這項工作。 就是這樣:
SQL> with test (vchnrno, credit, debit, amount) as
2 (select 'JV1', 'BA10', '0' , 100 from dual union all
3 select 'JV1', 'BA11', '0' , 10 from dual union all
4 select 'JV1', '0' , 'BC10', 90 from dual union all
5 select 'JV1', '0' , 'BC11', 20 from dual union all
6 --
7 select 'xxx', 'XX20', '0' , 50 from dual union all
8 select 'xxx', '0' , 'xx30', 70 from dual
9 )
10 select vchnrno, sum_credit, sum_debit, sum_debit - sum_credit diff
11 from (select vchnrno,
12 sum(case when credit <> '0' then amount end) sum_credit,
13 sum(case when debit <> '0' then amount end) sum_debit
14 from test
15 group by vchnrno
16 )
17 where sum_debit - sum_credit > 0;
VCH SUM_CREDIT SUM_DEBIT DIFF
--- ---------- ---------- ----------
xxx 50 70 20
SQL>
我將vchnrno = xxx
包含在樣本數據中,因為JV1
不符合標准( sum of debit = sum of credit
),因此無論如何都不會返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.