oracle中必须加入所有的列出的字段

解决方案 »

  1.   

    group by后必须跟所有select 中没有参与计算的字段
      

  2.   

    可以这样解决:先把要Group by的字段分组查询出来,然后作为一个结果集,再和表中的其他字段关联查询
      

  3.   

    group by 一个字段和所有字段结果有区别吗?
      

  4.   

    先GROUP BY一个字段,然后用UNION连接2个SELECT语句就可以得到你要的结果.
      

  5.   

    group by后必须跟所有select 中没有参与计算的字段
    你可以用相关子查询实现你的结果:SELECT
    a.Date,
    a.Class,
     (select SUM(a.amount) from tablename1 c 
     where a.class=c.class 
     group by c.class) as amount,
    b.note,
    b.Name
    FROM
    tablename1 a
    LEFT OUTER JOIN tablename2 b ON a.ID = b.ID
      

  6.   

    SELECT
    a.Date,
    a.Class,
    SUM(a.amount) over(partition by a.class),
    b.note,
    b.Name
    FROM
    tablename1 a, tablename2 b where a.ID = b.ID(+)
    GROUP BY a.Class
      

  7.   

    sorry:SELECT
    a.Date,
    a.Class,
    SUM(a.amount) over(partition by a.class),
    b.note,
    b.Name
    FROM
    tablename1 a, tablename2 b where a.ID = b.ID(+)
      

  8.   

    group by后必须跟所有select 中没有参与计算的字段,这是对的。也就是说,其他没有参与sum,max或min等的字段,如果要想查询出来就必须group by。