标题可能还没有描述得足够清楚。下面是详细描述:      
   
取得項目(SUM):A      
集計項目(GROUP    BY):……      
抽出条件(WHERE):……      
   
目标数据:SUM(A)大于0的那些纪录。      
比如说有10条记录,经过GROUP BY,抽出两条记录,其中一条的SUM(A)>0,这一条是由6条记录集計来的,那么就把这6条记录SELECT *取出来。    
 
开发中的实际问题,看似很简单,希望能尽快得解。

解决方案 »

  1.   

    "经过GROUP BY,抽出两条记录,"
    是不是group by后得到两条记录?
    除了那6条记录sum大于0,剩下的4条记录sum后<=0?那么这样
    select sum(A) from table
    where
    group by 字段
    having sum(A)>0
      

  2.   

    有点不太明白,sum(A)后,再分组?
      

  3.   

    SQL> select * from aa;NAME            SCORE
    ---------- ----------
    学生               10
    学生               10
    学生               10
    学生               10
    学生               10
    学生               10
    老师                0
    老师                0
    老师                0
    老师                0已选择10行。SQL> select name,sum(score) from aa group by name having sum(score)>0;NAME       SUM(SCORE)
    ---------- ----------
    学生               60
      

  4.   

    SQL> select * from aa;NAME            SCORE
    ---------- ----------
    学生               10
    学生               10
    学生               10
    学生               10
    学生               10
    学生               10
    老师                0
    老师                0
    老师                0
    老师                0已选择10行。SQL> select a.* from aa a where (select sum(score) from aa where name=a.name)>0;NAME            SCORE
    ---------- ----------
    学生               10
    学生               10
    学生               10
    学生               10
    学生               10
    学生               10
    已选择6行。
      

  5.   

    可能是这个意思已连接到 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 SQL> select * from aa;NAME                                         SCORE
    ---------- ---------------------------------------
    学生                                            60
    学生                                            60
    学生                                            60
    老师                                             0
    老师                                             0SQL> edSQL> select * from aa a where exists
      2  (select 1 from
      3  (select name,sum(score) from aa group by name having sum(score)>0) r
      4  where a.name = r.name)
      5  /NAME                                         SCORE
    ---------- ---------------------------------------
    学生                                            60
    学生                                            60
    学生                                            60
      

  6.   

    把条件在having里面写就行了啊
      

  7.   

    题目意思不太清楚。
    HAVING SUM(A) > 0
    来保证你的条件。