数据库的问题(数据库原理与运用)

题目是:查询选修"西方经济学"且成绩比("西方经济学"的平均成绩)低的学生的学号,姓名给的正确答案是:SELECTstudent.学号,姓名fromstudent,cou... 题目是:查询选修"西方经济学"且成绩比("西方经济学"的平均成绩)低的学生的学号,姓名给的正确答案是:SELECT student.学号,姓名 from student,course,schedule,gradewhere student.学号=grade.学号 and grade.课程id=schedule.课程id and course.课程

编号=schedule.课程编号and 课程名称="西方经济学" and 成绩<(SELECT avg(成绩) as平均成绩 from course,schedule,grade where grade.课程id=schedule.课程id and course.课程编号=schedule.课程编号and 课程名称="西方经济学" )我的答案是:SELECT student.姓名,学号 fromstudent,course,schedule,gradewhere student.学号=grade.学号 and grade.课程id=schedule.课程id and course.课程编号=schedule.课程编号 and 课程名称="西方经济学"group by 学号,姓名 having 成绩<avg(成绩)但是答案是错的,请问错在哪里了?
展开
 我来答
jsczwangx
2014-04-13 · TA获得超过1222个赞
知道小有建树答主
回答量:777
采纳率:100%
帮助的人:630万
展开全部
问题1——因为你关联了多张表,里面都有相同名称的字段名,你需要指定你去的字段名来自哪张表,需要在前面加上表名前缀,如:student.学号
问题2——having 成绩<avg(成绩),access不知道支不支持这个语句,即便支持,这个结果也是不对的,你这里的avg(成绩)是根据学号,姓名进行分组的,说白了就是每个人的平均成绩,而不是西方经济学的平均成绩
哈里魔术师
2014-04-13 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.5万
采纳率:38%
帮助的人:9237万
展开全部
你的 学号字段在多个表中都存在。这种情况下,在查询的时候,你只要用到学号字段,就必须在学号前加表名前缀。

你的查询中有地方没有加前缀,导致SQL无法辨认你的 学号 指的到底是哪一个表中的学号。

比如:SELECT student.姓名,学号 这里就没有加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式