dydh               je
                  XSTH1001260002           1950
                  XSTH1001260002           -1950
                 XSTH1001260005            567
想要的结果  XSTH1001260005            567
 XSTH1001260002  两条记录抵消请大家帮帮写一下

解决方案 »

  1.   

    select * from table where dydh not in(
             select t.dydh
             from table t 
             group by t.dydh
    );
      

  2.   

    针对你的数据可以这样……
    select * from
    (select dydh,sum(je) je from tb group by dydh)
    where je <> 0
      

  3.   


    刚接触 oracle几天 看不太懂 那个T 是那里来的
      

  4.   

    谢谢 fengyuan1314  xpingping
      

  5.   

    select * from test where dydh in (
    select dydh from test group by dydh having sum(je)<>0)
      

  6.   

    group by 好像不可以 和having 合在一起吧,求解?
      

  7.   

    group by 怎么不能和 having 合在一起???? having 是专门和 group合在一起的如下:
    SQL> create table tb(dydh varchar(20), je number)
      2  ;表已创建。SQL>  INSERT      INTO tb
      2   SELECT   'XSTH1001260002', 1950 FROM dual union
      3   SELECT   'XSTH1001260002', -1950 FROM dual union
      4   SELECT   'XSTH1001260005', 567 FROM dual;已创建3行。SQL> select * from tb;DYDH                         JE
    -------------------- ----------
    XSTH1001260002            -1950
    XSTH1001260002             1950
    XSTH1001260005              567SQL> ed
    已写入 file afiedt.buf  1  SELECT dydh, SUM(je) AS SUM
      2  FROM tb
      3  GROUP       BY dydh
      4* HAVING SUM(je)<>0
    SQL> /DYDH                        SUM
    -------------------- ----------
    XSTH1001260005              567SQL>