oracle+不能sum小数点,sql 完成sum(不包含部分行操作)--oracle

id                 date        val

12006    2005-3-5    10680.00

12046    2005-3-5    2840.00

12013    2005-3-5    12420.00

12010    2005-3-5    44640.00

12002    2005-3-5    81390.00

12005    2005-3-5    24943.00

12011    2005-3-5    10236.00

12030    2005-3-5

12003    2005-3-5    176830.00

12009    2005-3-5    158248.00

12014    2005-3-5    12500.00

12011    2005-3-6    11257.00

12012    2005-3-6    0.00

需求:按照每一天统计总和,但是不包括,12014,13003,12030,当id=12013时候,取负值

sql:写法一

select t.date,sum(

case

when id='12014' then 0

when id='13003' then 0

when stcdt='12030' then 0

when stcdt='12013' then -val

else val end)

from tb t group by t.date order by t.date desc;

写法二:

select t.date,sum(decode(t.id,'12014',0,'13003',0,'12030',0,'12013',-val,val))

from tb t group by t.date order by t.date desc;

写法三:

select date,sum( case      when id='12013' then            -val     else val end) from tb t where id not in ('12014','13003','12030') group by t.date order by t.date desc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值