不用group by 出来的查询结果都是同样的结果有好几条, 我想用group by 也许能只能出一条啊。就是象distinct 的效果啊 其实我的原始数据也只有一条。可是不知道为什么总是出来好多条呢?
你按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
还有一个问题 我也想在这个里面知道 也是同样的问题把 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为什么这个语句出来相同的结果的有五条之多啊。甚至有的更多啊。为什么他不能只选一条呢
order by o.updatetime desc 是排序不是分组order by是按某列排序 后面的desc是按降序排列!
但是我搜索其中的一个表的内容。相关的结果只有一条啊 这里怎么出现了5条相同的结果呢? 我知道order by 是排序啊/ 问题是怎么单独提取啊
你这样做等于是在cross join ,where1=1 加不加一样的
aa bb cc ---------- a 12 67 a 16 77 c 15 87 你想要得到什么样的结果集??
有from子句吗?我怎么没看到?
你的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 这样就是想要的结果
还有问题 如果我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 这样写可以吗? 我现在好象不行的
我想用group by 也许能只能出一条啊。就是象distinct 的效果啊
其实我的原始数据也只有一条。可是不知道为什么总是出来好多条呢?
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
我也想在这个里面知道
也是同样的问题把
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为什么这个语句出来相同的结果的有五条之多啊。甚至有的更多啊。为什么他不能只选一条呢
是排序不是分组order by是按某列排序 后面的desc是按降序排列!
这里怎么出现了5条相同的结果呢?
我知道order by 是排序啊/
问题是怎么单独提取啊
----------
a 12 67
a 16 77
c 15 87
你想要得到什么样的结果集??
多条结果是因为你在标关联中产生了迪卡尔积。
就像没有条件的时候|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
这样就是想要的结果
如果我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 这样写可以吗?
我现在好象不行的