日期:2014-05-18  浏览次数:20417 次

问大家一个问题关于sql语句的。
select   *   from   yt_data_jinzhends   where   creditid= ' "   +   yName   +   " '   group   by   jingzheng        

为什么我上面的这句老是报错,报错信息:在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在   GROUP   BY   子句中。
那位高手指点一下

------解决方案--------------------
去掉group by jingzheng
------解决方案--------------------
group by jingzheng 用来分组做什么?

------解决方案--------------------
去掉group by jingzheng
------解决方案--------------------
select * from yt_data_jinzhends where creditid= ' " + yName + " ' ordey by jingzheng
------解决方案--------------------
如果你想分组必须对你所查询的所有字段都ordey by
------解决方案--------------------
select * from yt_data_jinzhends where creditid= ' " + yName + " ' group by jingzheng

group by 要结合sum,count,avg等函数一起使用哈.
------解决方案--------------------
SQL 的基础问题 了 昨天刚回答过

还是举个比较傻的例子

学号 科目 成绩
1 数学 80
1 物理 70
2 数学 60
2 英语 50

如果你打算对学号做聚合
那么可能出来的结果是
学号 平均成绩
1 75
2 55
select 学号,Avg(成绩) as 平均成绩
from 表
group by 学号

但你是不能select * ...的,原因很简单,你这个查询结果如果要显示科目的话,你打算显示那一门呢?

所以用Group by的时候有个规定,要么是跟在Group by后面的字段(学号),要么是聚合的函数(成绩做了平均的聚合),其他字段是不能显示的