在ASP中怎么用SQL的GROUP BY子句?为什么每次在语句中出现这个子句程序就会出错?

spgoal 2002-02-28 10:16:15
如:rs.open "SELECT * FROM article",conn,1,2是不会出错的
但rs.open "SELECT * FROM article GROUP BY classid",conn,1,2
就会出错了
...全文
249 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
tater 2002-03-02
  • 打赏
  • 举报
回复
给你看一段SQL联机丛书中的文字,希望对你有所帮助:
GROUP BY 子句
指定用来放置输出行的组,并且如果 SELECT 子句 <select list> 中包含聚合函数,则计算每组的汇总值。指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。
spgoal 2002-03-02
  • 打赏
  • 举报
回复
多谢wmspy(wmspy),但我这里说的是GROUP BY字句,不是ORDER BY
spgoal 2002-03-02
  • 打赏
  • 举报
回复
弄清楚了,GROUP BY后的字段一定要和SELECT的字段保持一致,但GROUP BY后的字段列表可以掉乱顺序,哪个在前就以哪个作为先决分组条件
应该改为
rs.open "SELECT title,classid FROM article GROUP BY classid,title",conn,1,2
不能用“*”选择所有字段
wmspy 2002-03-02
  • 打赏
  • 举报
回复
一个简单的例子:

1)数据库设计为:
表名:table1
CITYCODE 城市代码 文本型
GENTIME 时间 日期型
num1 数量1 数值型
num2 数量2 数值型
num3 数量3 数值型

表中的数据
CITYCODE GENTIME NUM1 NUM2 NUM3
BJ 2002-03-01 10 20 30
BJ 2002-03-02 12 22 32
BJ 2002-03-03 14 24 34
SH 2002-03-01 11 21 31
SH 2002-03-02 13 23 33
SH 2002-03-03 15 25 35

2)SQL语句部分:
1.如果按城市3天求和
SQL = "SELECT CITYCODE,SUM(NUM1),SUM(NUM2),SUM(NUM3) FROM TABLE1 ORDER BY CITYCODE"

2.如果按城市3天求平均
SQL = "SELECT CITYCODE,AVG(NUM1),AVG(NUM2),AVG(NUM3) FROM TABLE1 ORDER BY CITYCODE"

还有其他情况,可以继续讨论。
spgoal 2002-03-02
  • 打赏
  • 举报
回复
不能,你说和我那句有什么不同?不就是用一个变量存了那个查询语句吗?还是一个样,提示Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
julyclyde 2002-03-02
  • 打赏
  • 举报
回复
group by是SQL的,与ASP无关,所以请检查有关SQL语句是否格式正确
ttt2 2002-03-02
  • 打赏
  • 举报
回复
select username,count(*) from b group by username
流星尔 2002-03-02
  • 打赏
  • 举报
回复
对,在sql server里group by后的表达式必须和select 后的表达式一致。
spgoal 2002-03-01
  • 打赏
  • 举报
回复
能举个例子吗?
spgoal 2002-03-01
  • 打赏
  • 举报
回复
不是吧,GROUP BY不是分组查询吗?
muddledman 2002-03-01
  • 打赏
  • 举报
回复
更正:classid?是标示符还是什么其他的字段?
muddledman 2002-03-01
  • 打赏
  • 举报
回复
sql="SELECT * FROM article GROUP BY classid"
rs.open sql,conn,1,2
spgoal 2002-03-01
  • 打赏
  • 举报
回复
UP
muddledman 2002-03-01
  • 打赏
  • 举报
回复
不一样,你试了没有,可以运行嘛〉/
muddledman 2002-03-01
  • 打赏
  • 举报
回复
不一样,你试了没有,可以运行嘛〉/
spgoal 2002-03-01
  • 打赏
  • 举报
回复
是字段
sql="SELECT * FROM article GROUP BY classid"
rs.open sql,conn,1,2
和我那个是一样的呀
neweb 2002-02-28
  • 打赏
  • 举报
回复
group by 一般用在 count,sum 等计算语句中,不能 select * 的,
你想要查什么数据啊?

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧