select 
      nvl(sum(case when a.flw_optid = '6008' then a.flw_amount 
          when a.flw_optid = '5008'" then -a.flw_amount else 0 end), 0.00)
      as sumAmount 
 from vi_ttnsmflwing a 
      inner join vi_tcommaccount b 
      on a.flw_accid = b.acc_id and b.acc_rleid= '00' 
 where 
      a.flw_baldate between 
      to_date('2011-12-16','yyyy-mm-dd') and to_date('2011-12-17','yyyy-mm-dd')
以上是sql语句,我已经试出来了,是  nvl(sum(case when a.flw_optid = '6008' then a.flw_amount 
          when a.flw_optid = '5008'" then -a.flw_amount else 0 end), 0.00)
      as sumAmount 这句话导致的,哪位高手告诉我下还有别的方法能实现 以上 那句话的 意思么,也就是说不用case when,最好简单点的,谢谢