SELECT YSXM,JZBH, SUM(JE1), SUM(JE4),SUM(JE13)
FROM YBXX.YBSFXX WHERE
ysxm='陈平'
GROUP BY YSXM,JZBH ORDER BY YSXM,JZBH
这样写可以正常分组,但是下面这种写法的话就不能按照JZBH字段进行分组,了现实的是根据jzbh不同显示所有明细
SELECT (substr(DYSFBH,2,2)) DYSFBH,YSXM,JZBH, SUM(JE1), SUM(JE4),SUM(JE13)
FROM YBXX.YBSFXX WHERE
ysxm='陈平'
GROUP BY DYSFBH,YSXM,JZBH ORDER BY DYSFBH,YSXM,JZBH
会不会是group by 中不能使用函数啊这里有substr

解决方案 »

  1.   

    SELECT (substr(DYSFBH, 2, 2)) DYSFBH,
           YSXM,
           JZBH,
           SUM(JE1),
           SUM(JE4),
           SUM(JE13)
      FROM YBXX.YBSFXX
     WHERE ysxm = '陈平'
     GROUP BY (substr(DYSFBH, 2, 2)), YSXM, JZBH
     ORDER BY DYSFBH, YSXM, JZBH
      

  2.   

    不是,要这样写
    SELECT (substr(DYSFBH,2,2)) DYSFBH,YSXM,JZBH, SUM(JE1), SUM(JE4),SUM(JE13) 
    FROM YBXX.YBSFXX 
    WHERE ysxm='陈平' 
    GROUP BY substr(DYSFBH,2,2),YSXM,JZBH 
    ORDER BY substr(DYSFBH,2,2),YSXM,JZBH 
      

  3.   

    SELECT里出现的字段必须要在GROUP BY里面或者该字段上用到了聚合函数。
      

  4.   


    --试一下:SELECT substr(DYSFBH, 2, 2), YSXM, JZBH, SUM(JE1), SUM(JE4), SUM(JE13)
      FROM YBXX.YBSFXX
     WHERE ysxm = '陈平'
     GROUP BY substr(DYSFBH, 2, 2), YSXM, JZBH
     ORDER BY DYSFBH, YSXM, JZBH;