欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

sql测试题 求答案解决方法

更新时间: 2014-01-05 03:07:17 责任编辑: Author_N1

 

SQL测试题 求答案
学生成绩信息三个表,结构如下: 
学生表:Member
字段名称 数据类型 说明
MID Char(10) 学生号,主键
MName Char(50) 姓名
课程表:
字段名称 数据类型 说明
FID Char(10) 课程,主键
FName Char(50) 课程名
成绩表:Score
字段名称 数据类型 说明
SID int 自动编号,主键,成绩记录号
FID Char(10) 课程号,外键
MID Char(10) 学生号,外键
Score int 成绩
请编写T-SQL语句来实现如下功能:
1) 查询各个学生语文、数学、英语、历史课程成绩,例如下表:
姓名 语文 数学 英语 历史
张萨 78   67 89 76
王强  89  67  84  96
李三 70  87  92  56
李四  80 78  97 66
2) 查询四门课中成绩低于70分的学生及相对应课程名和成绩。
3) 统计各个学生参加考试课程的平均分,且按平均分数由高到底排序。
4) 创建存储过程,分别查询参加1、2、3、4门考试及没有参加考试的学生名单,要求显示姓名、学号。
--参考方法--
select Mname as 姓名,语文,数学,英语,历史 from Member a join 
(select MID,sum(语文) as 语文,sum(数学) as 数学,sum(英语) as 英语,sum(历史) as 历史 from 
(select MID,case FName when '语文' then Score else 0 end as 语文,
case FName when '数学' then Score else 0 end as 数学,
case FName when '英语' then Score else 0 end as 英语,
case FName when '历史' then Score else 0 end as 历史 
from  (select MID ,FName,Score from score a join 课程表 b on a.FID=b.FID) tb_score
) total group by MID
) tb_all b on a.MID=b.MID
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:07:17
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/18565/
本文WWW.DOC100.NET DOC100.NET版权所有。