不是很明白你的意思。
是不是求在不同日期的帐目“持平”的帐号?
如果是这样的话,可以试试:select c.accno,c.dat
from
(select accno,dat,sum(amount) sum from a where flag='1' group by accno,dat) c,
(select accno,dat,sum(amount) sum from a where flag='2' group by accno,dat) d
where c.accno=d.accno
and c.dat=d.dat
and c.sum=d.sum;

解决方案 »

  1.   

    谢谢!这个子查询我知道,我的前提是不用子查询,我没说清楚。因为我做了一个SQL TOOLS,目前不支持嵌套查询的。
      

  2.   

    njhart2003() :我是这个意思,谢谢!
      

  3.   

    哦,明白你的意思了,直接做就可以了:
    select accno,dat,sum((flag-1.5)*amount)
    from a
    group by accno,dat
    having sum((flag-1.5)*amount)=0;
      

  4.   

    但是flag是char,无法运算啊!
      

  5.   

    char型数据通过to_number()函数转换成number型!
      

  6.   

    select Select AccNo,Dat,SUM( (to_number(flag)-1.5)*amount))
    from table_name 
    group by accno, dat
    having  SUM( (to_number(flag)-1.5)*amount))=0
      

  7.   

    SUM(  (FLAG  -1.5) * AMOUNT)可以的,会自动转INT.