最近几天辞职了,在家里面无聊。某一天在百度知道上看到一个问题,比较感兴趣,就研究了一下。
问题来源:
http://zhidao.baidu.com/question/1495573046720461139.html?fr=qlquick&entry=qb_browse_word
问题描述:
根据XSCJ数据库,编制存储过程完成部分常用的业务功能。在现有XSCJ数据库中做如下修改。
在表XSB中新增一列“状态”,表示学生在读情况,“1”表示在读(缺省状态),“2”表示退学试读,“3”表示退学。
编写若干存储过程完成如下业务功能:
(1)通过输入学生的学号或者姓名(两者方式均可),显示该生的所有成绩记录的结果集。
(2)通过输入学生的学号和某门课程的名称,通过输出参数返回该生在该门课程考试中的名次。
(3)完成审核学生学籍状况的功能。即在每个学年,检查每个学生的所有不及格课程的门数,对该生就读情况进行重新设定,并列出不为正常在读状态的所有学生信息。
l 如果不及格课程的数量超出其所有已修课程数量的一半时,当“状态”值为1,将其修改为2,表示退学试读,当“状态”值为2时,将其修改为3,表示退学。
l 如果不及格课程的数量不再超出其所有已修课程数量的一半,而该生处于退学试读状态时,即“状态”值为2时,将其修改为1,表示该生重新设置为“正常在读”的状态。
(4) 通过输入班级号和课程号,列出某班级某课程的平均成绩、最高成绩、最低成绩、及格人数、不及格人数、及格率等。如果该课程的及格率低于50%,则统一为每一位学生该门课程的考试成绩增加10分,对于90分以上的学生,则增加5分。对于增加成绩后出现超出100分的学生则按100分来处理。成绩调整后,需要再次列出新的成绩汇总情况。
数据表CJB,XSB,KCB,列名直接用中文
看到这个问题的时候,提问问题的人并没有给出数据库。这个问题要解决,需要经历以下几个步骤:设计数据库、模拟数据、编写解决问题的存储过程