select DXBS,avg(1 - round(sqrt(sum((FHYC_SB - FHYC_TQ) / nullif(FHYC_TQ, 0) *
(FHYC_SB - FHYC_TQ) / nullif(FHYC_TQ, 0) ) / 96),10)) ZQL
from mw_app.PM_BZ_DC_FHYCFZSJ where 
to_char(t_id,'yyyy-MM')=to_char(:YF,'yyyy-MM') GROUP BY DXBS
   
我执行这条sql语句报“not a single-group group function”  请问这是什么原因

解决方案 »

  1.   


    select DXBS,
    avg(1 - round(sqrt(sum((FHYC_SB - FHYC_TQ) / nullif(FHYC_TQ, 0) *
                 (FHYC_SB - FHYC_TQ) / nullif(FHYC_TQ, 0) ) / 96),10)) ZQL
    from mw_app.PM_BZ_DC_FHYCFZSJ 
    where  to_char(t_id,'yyyy-MM')=to_char(:YF,'yyyy-MM') 
    GROUP BY DXBS
    问题出在round()函数里头的表达式not a single-group group function报错的原因是:用了分组函数,除了分组以外的列都要写在group by 子名中
      

  2.   

      怎么解决啊?  帮一下忙啊,  把sql  写出来
      

  3.   

    select查询字段有的是函数有的不是函数……
      

  4.   

    分组函数嵌套使用导致报错.lz这句SQL先求和,再平均是什么意思呢,而且都是用DXBS.逻辑不对
    select DXBS,avg(1 - round(sqrt(sum((FHYC_SB - FHYC_TQ) / nullif(FHYC_TQ, 0) *
    (FHYC_SB - FHYC_TQ) / nullif(FHYC_TQ, 0) ) / 96),10)) ZQL
    from mw_app.PM_BZ_DC_FHYCFZSJ where  
    to_char(t_id,'yyyy-MM')=to_char(:YF,'yyyy-MM') GROUP BY DXBS
      

  5.   

    在使用GROUP BY进行分组的时候对SELECT后面的列有要求。
    就是每个字段,要么出现在聚合函数中,要么出现在GROUP BY子句中。不能出现一个或多个字段,它在上述两个位置都没有出现。