--啥意思??
select kf,pjbm,cx=sum(cx),tycx=sum(tycx),pjmc=sum(pjmc),mcbm=sum(mcbm),ggxh=sum(ggxh),kcsl=sum(kcsl),cbje=sum(cbje),cbdj=sum(cbdj) from part_actual 
group by 
kf,pjbm,cx

解决方案 »

  1.   

    select kf,pjbm,cx,tycx,pjmc,sum(kcsl) as kcslhj,sum(cbje) as cbje_hj,round(sum(cbje)/sum(kcsl),2) as cbdjh from part_actual where kcsl<>0 group by kf,pjbm,cx,tycx,pjmc
    我写成上面的方法,但是列出字段不够,如果再加上就出现了错误。选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
      

  2.   

    --你的Group by 后面是要非聚合函数的参数啊。
    这样select A,B,C,D,E=sum(E)
    from 表
    group by
           A,B,C,D
      

  3.   

    谢谢,我在您发信息的时候网断了,结果我发完了以后才看到您的,不好意思,是我自己找的一个方法,但是我想这样的,
    select A,B,C,D,E=sum(E)
    from 表
    group by
           A,B,C,D
    这是您的方法,但是我想如果select A,B,C,D,E=sum(E) from 表 group by A,B,C怎么办呢?
      

  4.   

    D 字段是什么类型的?
    D字段加个聚合函数就可以了。比如Max,Min
    select A,B,C,D=max(D),E=sum(E)
    from 表
    group by
           A,B,C
      

  5.   

    如果D是varchar型的怎么办呢?
      

  6.   

    D 加 max,min 均可以...你看这一列值,要怎么取值。。
      

  7.   

    select top 5 kf,pjbm,max(cx) as cx,max(pjmc) as pjmc,sum(kcsl) as kcsl,sum(cbje) as cbje,round(sum(cbje)/sum(kcsl),2) as cbdj from part_actual where kcsl<>0 group by kf,pjbmkf   pjbm                                               cx                                                 pjmc                                               kcsl                                     cbje                                     cbdj                                     
    ---- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- 
    8    02080618(改进型)                                      CJ6800G1C2H                                        后刹车分泵(左)                                           2.00                                     560.00                                   280.000000
    8    0210238019                                         HH-DD6103HSC                                       机油表                                                1.00                                     190.00                                   190.000000
    8    0211158005                                         CJ6800G1C2H/YC4110ZQ                               高压油泵弹簧上座圈                                          12.00                                    144.00                                   12.000000
    8    0211158006                                         CJ6800G1C2H/YC4110ZQ                               高压油泵弹簧下座                                           16.00                                    272.00                                   17.000000
    8    0211158007                                         CJ6800G1C2H/YC4110ZQ                               高压油泵储油阀弹簧                                          20.00                                    160.00                                   8.000000(所影响的行数为 5 行)是这样吧,不过,我就是有一点想不明白,如果我想列出表中的所有字段,但却只想利用其中的几个字段group by 怎么办呢?是不是必须得加聚合函数呢?应该是吧!
      

  8.   

    其它字段必须加聚合函数,也要看你具体需求了。也可以用exists 来解决求最值问题。要看你具体业务需求俩。