生活中未雨绸缪的事例:数据库高手请进(about SQL)

来源:百度文库 编辑:高考问答 时间:2024/04/28 04:32:27
在Access中创建试图RS,用于显示所有学生的学号、姓名和平均成绩。
(注:STUDENT和SKB是两张表,STUDENT表有学号、姓名、性别字段,SKB表有学号、课程号、成绩字段)
CREATE VIEW RS AS
SELECT STUDENT.学号,STUDENT.姓名,AVG(SKB.成绩)AS 平均成绩 WHERE STUDENT.学号=SKB.学号 GROUP BY STUDENT.学号
以上的语句有错误吗?错在哪里?为什么我运行不了?

有错误.
CREATE VIEW RS AS
SELECT STUDENT.学号,STUDENT.姓名,AVG(SKB.成绩)AS 平均成绩 WHERE STUDENT.学号=SKB.学号 GROUP BY STUDENT.学号 , STUDENT.姓名
如果以后要用group by , select 时必须把没有包含在avg等聚集函数中的字段放在group by 后面.

你的SQL语句有些问题,在GROUP BY后面再加一个姓名的字段就可以了:

... GROUP BY STUDENT.学号,STUDENT.姓名

GROUP BY 后面再添加一个姓名字段,因为STUDENT.姓名没有包含在聚合函数中:
SELECT STUDENT.学号,STUDENT.姓名,AVG(SKB.成绩)AS 平均成绩 WHERE STUDENT.学号=SKB.学号 GROUP BY STUDENT.学号,STUDENT.姓名

看起来到没有什么错,是不是你输入法不对,那也是错误的原因

不是用“,”号是用“、”吧。
还有你前面的函数有没有放在同一个服务器中运行么?
还望你自己检查下。

用Oracle。不要用Access.