
有个SQL查询语句请教大家: 选出 “语文”和“数学”都选修并且语文成绩比数学成绩高的所有学生的姓名
数据表:学生表student表sidsname教师表teacher表tidtname课程表course表cidcnametid成绩表sc表sidcidscore不要分布语...
数据表:学生表student表 sid sname
教师表 teacher表 tid tname
课程表 course表 cid cname tid
成绩表sc 表 sid cid score
不要分布语句,希望写成一个语句,谢谢各位大大 展开
教师表 teacher表 tid tname
课程表 course表 cid cname tid
成绩表sc 表 sid cid score
不要分布语句,希望写成一个语句,谢谢各位大大 展开
展开全部
select aa.sid,s.sname from
(select sc.sid,sc.cid,sc.score,c.cname
from sc inner join cource c on sc.cid = c.cid
where c.cname in('语文','数学')) aa
inner join student s on aa.sid = s.sid
group by aa.sid,s.sname
having count(aa.*) > 1 --此处选出同时选择了“语文”和“数学”两门课的学生
and sum(case aa.cname when '语文' then aa.score else 0 end) > sum(case aa.cname when '数学' then aa.score else 0 end) -- 次数选出“语文”成绩大于“数学”成绩的学生
(select sc.sid,sc.cid,sc.score,c.cname
from sc inner join cource c on sc.cid = c.cid
where c.cname in('语文','数学')) aa
inner join student s on aa.sid = s.sid
group by aa.sid,s.sname
having count(aa.*) > 1 --此处选出同时选择了“语文”和“数学”两门课的学生
and sum(case aa.cname when '语文' then aa.score else 0 end) > sum(case aa.cname when '数学' then aa.score else 0 end) -- 次数选出“语文”成绩大于“数学”成绩的学生
追问
你好 我测试了你的语句 最后得到的结果是 语文和数学 都学了的学生,并没有查语文比数学高的学生,能再帮忙看下嘛
2012-10-17
展开全部
select db.sname
from
(select a.sname,c.cname,b.score
from student as a
inner join sc as b
on a.sid=b.sid
inner join course as c
on b.cid=c.cid and c.cname='语文') as db --姓名、科目(语文)、成绩
inner join (select a.sname,c.cname,b.score
from student as a
inner join sc as b
on a.sid=b.sid
inner join course as c
on b.cid=c.cid and c.cname='数学') as db2 --姓名、科目(数学)、成绩
on db.sname=db2.sname
where db.score>db2.score --语文成绩大于数学成绩
from
(select a.sname,c.cname,b.score
from student as a
inner join sc as b
on a.sid=b.sid
inner join course as c
on b.cid=c.cid and c.cname='语文') as db --姓名、科目(语文)、成绩
inner join (select a.sname,c.cname,b.score
from student as a
inner join sc as b
on a.sid=b.sid
inner join course as c
on b.cid=c.cid and c.cname='数学') as db2 --姓名、科目(数学)、成绩
on db.sname=db2.sname
where db.score>db2.score --语文成绩大于数学成绩
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询