我有一张包含以下样本数据的表格:
ID Code1 Code2 Amount
-------------------------
1 A 0 1500
1 0 B 1500
1 0 B 200
1 A 0 300
我想检查code1和code2之和的差异是否相同。对于此Code1,Sum为(1500 + 300),code2为(1500 + 200),差值为100
请分享代码
答案 0 :(得分:0)
select sum(decode(code1, '0', 0, amount) - decode(code2, '0', 0, amount))
from your_table
答案 1 :(得分:0)
您可以使用SUM
尝试条件CASE
。在比较时,在引号中包含零是很重要的,因为您的列code1,code2
是字符类型。
SELECT SUM (CASE WHEN code1 != '0' THEN amount ELSE 0 END)
- SUM (CASE WHEN code2 != '0' THEN amount ELSE 0 END)
diff
FROM yourtable;
答案 2 :(得分:0)
试试这个,
select case when code1='A' than sum(Amount) else 0 [Sum1] end,
case when code2='B' than sum(Amount) else 0 [Sum2] end,
case when [Sum1]=[S2] 'Same' else "Not Same' end
from [Table_name];