SELECT NEWFLOWCONTROL.NUMBERR,order_detail.photonum,order_detail.WARE_NUM FROM order_detail,NEWFLOWCONTROL WHERE NEWFLOWCONTROL.NUMBERR=order_detail.NUMBERR AND NEWFLOWCONTROL.NSTATE='0' GROUP BY NEWFLOWCONTROL.NUMBERR
请问上面一条语句出什么错?

解决方案 »

  1.   

    好像GROUP BY NEWFLOWCONTROL.NUMBERR 要报错???为什么???
      

  2.   

    你select中没有聚合函数加group by干嘛呀
      

  3.   

    select字段必须是group by有的,要关联其他表,可以关联子查询
      

  4.   

    你group by NEWFLOWCONTROL.NUMBERR这个字段
    那么其余的字段要有sum,count,min,max等相关的函数
      

  5.   

    group by 需要里select 里面有聚合函数
      

  6.   


    你的意思应该是要在结果中剔除重复的,这样的话,需要对查询结果的所有字段进行GROUP BY (聚合函数也具有这种特性,所以加了聚合函数的就不用加进GROUP BY 中了)。这样写就不会错了:
    SELECT NEWFLOWCONTROL.NUMBERR, order_detail.photonum, order_detail.WARE_NUM
      FROM order_detail, NEWFLOWCONTROL
     WHERE NEWFLOWCONTROL.NUMBERR = order_detail.NUMBERR
       AND NEWFLOWCONTROL.NSTATE = '0'
     GROUP BY NEWFLOWCONTROL.NUMBERR,, order_detail.photonum, order_detail.WARE_NUM
    或者用DISTINCT 也可以达到要求:
    SELECT DISTINCT NEWFLOWCONTROL.NUMBERR, order_detail.photonum, order_detail.WARE_NUM
      FROM order_detail, NEWFLOWCONTROL
     WHERE NEWFLOWCONTROL.NUMBERR = order_detail.NUMBERR
       AND NEWFLOWCONTROL.NSTATE = '0'
      

  7.   

    没有求和汇总语句是,不用group by