CYW_N 2017-05-11 13:23 采纳率: 25%
浏览 2042

SQL视图查询里总是出错

每次一使用视图的查询语句就出错,请教这样的问题该怎么解决?谢谢~

CREATE VIEW V_SC_G
AS
SELECT STUDENT.SNO,SNAME,SC.CNO,CNAME,GRADE
FROM STUDENT,COURSE,SC
WHERE SC.SNO=STUDENT.SNO AND SC.CNO=COURSE.CNO
GO
--1) 将Student, Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_SC_G;
CREATE VIEW V_YEAR
AS
SELECT SNO,SNAME,SAGE AGE
FROM STUDENT
GO
--2) 定义一个反映学生出生年份的视图V_YEAR;
CREATE VIEW V_AVG_S_G
AS
SELECT STUDENT.SNO,COUNT(CNO) CNONUM,AVG(GRADE) AVGGRA
FROM SC,STUDENT
WHERE SC.SNO=STUDENT.SNO GROUP BY STUDENT.SNO
GO
--3) 将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G;
CREATE VIEW V_AVG_C_G
AS
SELECT CNO,COUNT(*)
AS CNONUM, AVG(GRADE) AVGGRA
FROM SC
GROUP BY CNO
GO
--4) 将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G。

SELECT * FROM V_SC_G
DROP VIEW V_SC_G
SELECT * FROM V_YEAR
DROP VIEW V_YEAR
SELECT * FROM V_AVG_S_G
DROP VIEW V_AVG_S_G
SELECT * FROM V_AVG_C_G
DROP VIEW V_AVG_C_G
-- 1) 查询以上所建的视图结果。
SELECT STUDENT.SNO,SNAME,AVGGRA FROM V_AVG_S_G A,STUDENT WHERE STUDENT.SNO=A.SNO AND A.AVGGRA>='90'
-- 2) 查询平均成绩为90分及以上的学生学号、姓名和成绩;
SELECT STUDENT.SNO,SNAME,CNO,GRADE,AVGGRA FROM SC B,STUDENT,V_AVG_S_G WHERE B.SNO=STUDENT.SNO AND STUDENT.SNO=V_AVG_S_G.SNO AND
NOT EXISTS(SELECT * FROM SC C,V_AVG_C_G WHERE B.GRADE<V_AVG_C_G.AVGGRA AND B.CNO=C.CNO)
-- 3) 查询课程成绩大于平均成绩的学生学号、课程号、成绩和平均成绩;
SELECT SNAME,SNO FROM V_YEAR WHERE AGE='1994'
-- 4) 查询1994年出生的学生学号和姓名。

图片说明
图片说明
图片说明
图片说明
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-05-11 16:19
    关注

    V_AVG_C_G这个视图没有创建成功。你把查询拆开,一个一个添加,看哪一个步骤出错

    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮