有学生情况,学生成绩,学生课程三张表要定义存储过程,要求实现能查询某门课程在某一分数段的学生姓名,班级及成绩信息.请问怎么做呢?我是一个初学者。

解决方案 »

  1.   

    create proc sp_test
    as
    select a.学生姓名,a.班级,b.成绩
    from 学生情况 a
    join 学生成绩 b on a.学号=b.学号
    join 学生课程 c on b.课程号=c.课程号
    where c.课程名称='xxx'
    and b.分数 between xxx and xxx
    多看看书,照着写应该不难的
      

  2.   


    CREATE PROCEDURE 学生课程信息表
    @课程号  INT,   
    @START   INT, --开始的分数
    @END     INT  --结束分数
    AS 
    SET NOCOUNT ONSELECT A.姓名,A.班级,B.分数
    FROM 学生情况 A 
    INNER JOIN 学生成绩表 B ON A.学生号=B.学生号 
    INNER JOIN  学生课程 C ON B.课程号=C.课程号
    WHERE  C.课程号= @课程号
    AND B.分数  BETWEEN @START AND @END   --分数在@START 和 @END   
     
      

  3.   

    三表连接查询
    create procedure p_text@课程名称 varchar(20),
    @分数大  int ,
    @分数小  int
    as select a.姓名,b.班级,b.分数
    from 学生情况表 a join 学生成绩表 b in a.学号=b.学生号
    join 学生课程表 c join b.课程号=c.课程号
    where c.课程名称=课程名称 and b.成绩 between 分数小 and 分数大
      

  4.   

    create proc p_test
    as
    select a.学生姓名,a.班级,b.成绩
    from 学生情况 a
    join 学生成绩 b on a.学号=b.学号
    join 学生课程 c on b.课程号=c.课程号
    where c.课程名称='课程名'
    and b.分数 between 分数段1 and 分数段2
    /*这个多写几个就会了,一起学习*/
      

  5.   

    代码我就不说了,给几个建议:
    1、先写出查询,如果查询都可以了,直接在语句的上方加上create proc xxx (参数) as ,存储过程就完成了。
    2、我刚学数据库的时候就要做这类的题目,楼主要反省一下是不是网络太发达了使得你已经不愿意思考问题了?如果没有搜索引擎、论坛之类的,你会怎么解决问题?初学者更要懂得思考,没有一个高手和大牛是通过直接问别人代码或者思路炼出来的。
    3、你先把数据库书上的练习题和例子全部搞通了,再回过头来看看你的问题吧