你的SQL中有group by o.city,那你的SELECT列表中所有项要么是聚合函数,要么就需要出现在group by子句中。不知道你为什么要用group by?

解决方案 »

  1.   

    不用group by 出来的查询结果都是同样的结果有好几条,
    我想用group by 也许能只能出一条啊。就是象distinct 的效果啊
    其实我的原始数据也只有一条。可是不知道为什么总是出来好多条呢?
      

  2.   

    你按o.city分组如:
    aa bb cc
    ----------
    a  12 67
    a  16 67
    c  15 87
    这个表你按aa分组
    出来的结果是:
    aa  bb  cc
    -----------
    a     <-------------------这里添什么呢??是12还是16 ??
    c
    你说你不指定任何的聚合函数如max,min,avg,sum...SQLServer该在bb和cc里添入什么呢??
    你的语句没有说明这一点,当然会错!
    select a,sum(b),avg(c) from 表 group by a
    --------^^^^^^^^^^^^^^对没有分组的b和c列你要指定聚合函数!
    多看help
      

  3.   

    还有一个问题
    我也想在这个里面知道
    也是同样的问题把
    select o.updatetime,o.number_order,o.order_card,o.city,o.hotel,h.commend,e.work_no,e.team,o.guest_to_hotel_status,o.memo from orderlist o,employee e,hotel h where 1 = 1 order by o.updatetime desc为什么这个语句出来相同的结果的有五条之多啊。甚至有的更多啊。为什么他不能只选一条呢
      

  4.   

    order by o.updatetime desc
    是排序不是分组order by是按某列排序 后面的desc是按降序排列!
      

  5.   

    但是我搜索其中的一个表的内容。相关的结果只有一条啊
    这里怎么出现了5条相同的结果呢?
    我知道order by 是排序啊/
    问题是怎么单独提取啊
      

  6.   

    你这样做等于是在cross join ,where1=1 加不加一样的
      

  7.   

    aa bb cc
    ----------
    a  12 67
    a  16 77
    c  15 87
    你想要得到什么样的结果集??
      

  8.   

    有from子句吗?我怎么没看到?
      

  9.   

    你的sql有问题的
    多条结果是因为你在标关联中产生了迪卡尔积。
    就像没有条件的时候|A| * |B| 产生的结果是所有|A||B|元素的组合。
    比如 :ABC三个表,通过ID相关联,可以写成
    select a.test , b.test ,c.test from A a,B b ,C c where a.id = b.id and a.id = c.id
    order by a.id
    这样就是想要的结果
      

  10.   

    还有问题
    如果我A是父表,B是子表,C是B的子表
    那么
    a和c没有直接的关联。我是通过B来连接A和C 的
    select a.test , b.test ,c.test from A a,B b ,C c where a.id = b.rootid and b.id = c.rootid
    order by a.id 这样写可以吗?
    我现在好象不行的