create table test (id number,name varchar2(1));insert into test values(1,'a');insert into test values(2,'b');select  (
(select id from test where name = 'b')-
(select id from test where name = 'a')) from dual;所以
select 
(select sum(a) from bbb where date='20050101')
-
(select sum(a) from bbb where date='20041231')
from dual;

解决方案 »

  1.   

    select sum(x.a)-sum(y.a) 
    from bbb x,bbb y 
    where x.date=to_date('20050101','YYYYMMDD') and y.date=to_date('20041231','YYYYMMDD')呵呵,没考虑效率。
      

  2.   

    SELECT SUM(DECODE(date,'20050101',a,0-a)) 
      FROM bbb
     WHERE date IN ('20050101','20041231');
      

  3.   

    Alkeen  的结果好象不对吧!
      

  4.   

    select sum(decode(date,'20050101',a,0))-sum(decode(date,'20050102',a,0)) from bbb;
      

  5.   

    zmgowin(hermit)的正解,使用DECODE函数是最好的选择