解决方案 »

  1.   

    group by 不能去掉的原因是所在的sql中有使用到聚合函數。
      

  2.   

    你好,那请问:红色语句中的A.fname,A.FNumber所在的A表并没有使用到聚合函数呀,为什么把A.fname,A.FNumber去掉,整个语句依然提示不能通过呢。
      

  3.   

    本帖最后由 roy_88 于 2014-12-01 11:27:30 编辑
      

  4.   

     group by A.FItemID,A.fname,C.fqty,D.FAuxQty,e.a,slow.fqty1,A.FNumber) as yuan
      

  5.   

    使用group by的sql,select 之後的數據必須是group by之後的字段或聚合函數計算出來的值。
    很顯然select 中有A.fname,A.FNumber這兩個字段,所以不能去掉group by後面的這兩個字段。另:1)表名長的可以是別名代替。
            2)case when 字段 is not null then 字段 else 0 end ,可以採用isnull(字段,0)的方法。
            3)查詢長的sql,可以分幾步來查詢。先插入到臨時表中,select *  into #temp from tablename,最後再drop 掉就OK。
      

  6.   

    一般分组的话只用一个group by就搞定了,你弄了好几个,这样肯定不合理,以后也不好维护
      

  7.   

    非常感谢您的回答,跟进您的代码格式,我将代码重做了。现在非常清晰,也不需要多个group by,谢谢。结贴。