数据库如同附件中,是关于学生选课信息的。问题如下:将学生的学号及他的平均成绩定义为一个视图SG,并在SG视图中查询平均成绩在90分以上的学生学号和平均成绩。我的语句:CREATE VIEW SGAS SELECT Sno, AVG(Grade) AS 'Avergrade'FROM Student, SCWHERE Student。
Sno=SC。SnoGROUP BY Sno;SELECT Sno, AvergradeFROM SGWHERE Avergrade>=90;编译无报错,但不能执行。请问为什么?怎么改?谢谢!。
alter VIEW SG AS SELECT A.Sno, AVG(B.Grade) AS Avergrade FROM SC A left outer join Student B on A.Sno=B.Sno GROUP BY A.Sno 两个表都有Sno字段,你要指明用那个表的Sno来分组 尽量使用左连接
改成如下语句。 CREATE VIEW SG AS SELECT a.Sno, (case when AVG(Grade) is null then 0 else AVG(Grade)) AS Avergrade FROM Student, SC WHERE Student.Sno=SC.Sno GROUP BY Sno;