如何使用sql编写查询语句 用于查询学生的 各科成绩
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用sql编写查询语句 用于查询学生的 各科成绩相关的知识,希望对你有一定的参考价值。
3张表
学生表:Member
字段名称 数据类型 说明
MID Char(10) 学生号,主键
MName Char(50) 姓名
课程表F:
字段名称 数据类型 说明
FID Char(10) 课程,主键
FName Char(50) 课程名
成绩表:Score
字段名称 数据类型 说明
SID int 自动编号,主键,成绩记录号
FID Char(10) 课程号,外键
MID Char(10) 学生号,外键
Score int 成绩
最后 实现
select @sql='select a.mname as 学生姓名'
select @sql=@sql+',sum(case c.fname when '''+fname+''' then b.score else null end )as '+fname from f
select @sql=@sql+' from member a left join score b on a.mid=b.mid left join f c on b.fid=c.fid group by a.mname'
print @sql
exec (@sql)
费了好劲,真麻烦,头一次搞这个东西 参考技术A Select a.MName,
sum(case when b.FName='语文' then c.成绩 else 0 end) As '语文' ,
sum(case when b.FName='数学' then c.成绩 else 0 end) As '数学',
sum(case when b.FName='英语' then c.成绩 else 0 end) As '英语',
sum(case when b.FName='历史' then c.成绩 else 0 end) As '历史'
From Member a,F b,Score c
where a.MID=c.MID and c.FID=b.FID
Group By MName
以上是关于如何使用sql编写查询语句 用于查询学生的 各科成绩的主要内容,如果未能解决你的问题,请参考以下文章
试写一个SQL语句,查询出各科成绩最高分的同学(包括学生号,科目与成绩)
mysql版 查询各科成绩前三名的记录:(不考虑成绩并列情况)
SQL语句查询每个学生的学号、姓名、平均成绩、最高成绩和最低成绩