`
haiyupeter
  • 浏览: 425388 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

sql server 2000存储过程例子

阅读更多

/****** Object:  Stored Procedure dbo.ChengJi    Script Date: 2005-11-10 11:28:53 ******/

CREATE PROCEDURE dbo.ChengJi  (@fClass_No varchar(20),@fTermNo varchar (10),@n int)
 AS
create table #temp
(
     fStu_Num varchar (20),
    fStu_Name varchar (20),
    fSex       varchar(2),
    fScores   varchar (8000),
    fAverage varchar(10),
    fNote       varchar(1) default '0'
)
--从学籍表T_xjStudent 中取得指定班级的所有学生存入#temp 中,以备后面使用
declare @StuNum varchar (20),@StuName varchar(20),@Sex varchar(2),@Scores varchar(8000),@fCNames varchar(200)
declare stu_cursor cursor for select distinct  fStudentNum ,fName,fSex  from T_xjStudent where fClassNum =@fClass_No-- and substring(fStudentNum,1,4)='1999'
Open stu_cursor 
    fetch next from stu_cursor into @StuNum,@StuName,@Sex
while @@fetch_status = 0
begin
    Insert into #temp (fStu_Num,fStu_Name,fSex,fScores) values(@StuNum,@StuName,@Sex,'')
    fetch next from stu_cursor into @StuNum,@StuName,@Sex
end
close stu_cursor
deallocate stu_cursor

--选择出一个学籍班的某一学期所有教学计划安排
declare @fCourseNum varchar (20),@fCourseName varchar(20)
declare @fScores varchar (8000)
declare Cou_cursor cursor for
    select   distinct PE.fCourse_No As 课程班号,CL.fCName_China As 课程
     from    T_jxPersonalElective PE ,T_xjStudent S ,T_jxCourseLibrary CL
    where  S.fStudentNum =PE.fStudentNum and S.fClassNum = @fClass_No and PE.fTermNo =@fTermNo and CL.fCourse_Num=Substring(PE.fCourse_No,2,4)
        /*select  TI.fCourse_No As 课程班号,CL.fCName_China As 课程
        from T_jxTeachImplement TI,T_jxCourseLibrary CL 
        Where TI.fClass_No=@fClass_No and CL.fCourse_Num =substring(TI.fCourse_No,2,4) and TI.fTermNo =@fTermNo */ --TI.fCourse_No'11313201'
Open Cou_cursor 
    fetch next from Cou_cursor into @fCourseNum,@fCourseName
    --set @fCNames = @fCNames +@fCourseName
while @@fetch_status = 0
begin

--选出每一个学籍班的所有学生一学期一门课程的成绩
    declare @SNum varchar(20),@SName varchar (20),@SS varchar(10),@fNote varchar(1),@EC  varchar(10)
    declare Score_cursor cursor for
        select     S.fStudentNum As 学号,S.fName As 姓名,ISNULL(PE.fScore1,0) As 成绩 ,EC.fCheatName2 As 考试情况
        from       T_xjStudent S,T_jxPersonalElective PE ,T_jxExamCheat EC
        where    S.fStudentNum = PE.fStudentNum and S.fClassNum =@fClass_No and PE.fCourse_No = @fCourseNum and PE.fTermNo = @fTermNo 
            and EC.fCheat_No = PE.fCheat -- @fCourseNum'11313201'
        Order By  S.fStudentNum,PE.fScore1
    Open Score_cursor 
        fetch next from Score_cursor into @SNum,@SName,@SS,@EC
    while @@fetch_status = 0
    begin
        set @Scores = (select fScores from #temp where fStu_Num =  @SNum and fStu_Name = @SName)
        set @fNote  =  (select fNote from #temp where fStu_Num =  @SNum and fStu_Name = @SName)
        if(cast(@SS As int)>=60 and @fNote='0' and @SS!='0')  -- @SS!='' and @SS!='NULL'  and
        Update #temp set fScores =( @Scores+ @SS+'         '),fNote = '0'  where fStu_Num =  @SNum and fStu_Name = @SName  
        else
        if(@SS =''  or  @SS = 'NULL'  or @SS='0')
        Update #temp set fScores =( @Scores+ @EC +'         ') ,fNote = '1'  where fStu_Num =  @SNum and fStu_Name = @SName--  
        else
        Update #temp set fScores =( @Scores+ @SS +'         ') ,fNote = '1'  where fStu_Num =  @SNum and fStu_Name = @SName  
        fetch next from Score_cursor into @SNum,@SName,@SS,@EC
    end
    close Score_cursor
    deallocate Score_cursor

    fetch next from Cou_cursor into @fCourseNum,@fCourseName
end
close Cou_cursor
deallocate Cou_cursor

--计算平均成绩
declare @fStudentNum varchar(20),@fName varchar(20),@Ave varchar (10)
declare Ave_cursor cursor for
    select S.fStudentNum As 学号,S.fName As 姓名,avg(PE.fScore1) As 平均成绩 
    from       T_xjStudent S,T_jxPersonalElective PE 
    where    S.fStudentNum = PE.fStudentNum and S.fClassNum =@fClass_No  and PE.fTermNo = @fTermNo    --  and  PE.fScore2 ='' and PE.fScore3 =''                                                                         --and PE.fCourse_No = '11313201'
    group by S.fStudentNum,S.fName

Open   Ave_cursor
    fetch next from  Ave_cursor into @fStudentNum,@fName ,@Ave
while @@fetch_status = 0
begin
    Update #temp set fAverage = @Ave where fStu_Num =  @fStudentNum and fStu_Name = @fName   
    fetch next from  Ave_cursor into @fStudentNum,@fName ,@Ave
end
close Ave_cursor 
deallocate Ave_cursor
if(@n !='' and  @n !=0)
begin
set ROWCOUNT @n
select   fStu_Num As 学号,fStu_Name As 姓名,fSex As 性别,fScores As 成绩 ,substring(fAverage,1,5)  As 平均成绩 from #temp  Where fNote ='0'
Order by  substring(fAverage,1,5)  DESC
set ROWCOUNT 0
end
else
select   fStu_Num As 学号,fStu_Name As 姓名,fScores As 成绩 ,substring(fAverage,1,5)  As 平均成绩 from #temp


GO

分享到:
评论

相关推荐

    hiberate SQL Server 2000 存储过程.pdf

    标题与描述中的关键词“hibernate SQL Server 2000 存储过程”指出了本文档的主题,即在Hibernate框架下如何与SQL Server 2000的存储过程进行交互。下面将深入探讨这一主题,包括为什么在Hibernate中使用存储过程、...

    SQL Server 2000 存储过程与XML编程1

    如果你不懂存储过程,你看这个,如果你想深究存储过程,看这个。你下载了给我发邮件:我给你实例数据库,也就是书里面的所有的例程和其他的!sunwu5212@126.com 。用超星阅读,文件很大!分两部分上传!这是第一部分...

    SQLSERVER存储过程例子

    以下是针对"SQLSERVER存储过程例子"的详细解释。 1. **存储过程的概念**: 存储过程是一组为了完成特定功能的SQL语句,这些语句被组合在一起并保存在数据库中,用户可以通过调用存储过程的名字来执行这些语句。...

    SQL Server 存储过程与实例

    以下是关于SQL Server存储过程的详细说明: 1. **存储过程的概念** 存储过程Procedure是一系列SQL语句的集合,它们在数据库中以编译好的形式存储,当需要执行时,只需要调用存储过程的名称并传入相应的参数。存储...

    sqlserver存储过程解密工具

    这就是“sqlserver存储过程解密工具”所解决的问题。 SQL Server存储过程的加密通常是在开发或部署过程中,为了保护知识产权、防止未授权修改或者增加安全性而进行的。然而,在某些情况下,比如接手他人项目、排查...

    SQLServer存储过程中事务的使用方法

    本篇将详细介绍如何在SQL Server存储过程中使用事务。 首先,事务有四个基本特性,即ACID(原子性、一致性、隔离性和持久性): 1. 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成,不会留下...

    学习SQL Server存储过程入门例子详解

    SQL Server 存储过程入门例子详解 SQL Server 存储过程是数据库管理员和开发人员的必备技能,本文将通过三个简单的例子来详细介绍 SQL Server 存储过程的基本知识。 例 1:简单的存储过程 在这个例子中,我们将...

    执行Sqlserver存储过程返回DataSet

    ### 执行SQL Server 存储过程并返回DataSet 在软件开发过程中,经常需要与数据库进行交互,其中一种常见的场景就是通过调用存储过程来获取数据并处理这些数据。本篇文章将详细探讨如何在C#中执行SQL Server的存储...

    C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息示例

    C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息示例 本文主要介绍了使用C# Ado.net实现读取SQL Server数据库存储过程列表及参数信息的方法,通过实例形式总结分析了C#针对SQL Server数据库存储过程及...

    sql server调用存储过程

    这个例子定义了一个名为`usp_GetEmployeeDetails`的存储过程,它接收一个参数`@EmployeeID`,并返回对应ID的员工详情。 调用存储过程可以通过`EXEC`关键字完成: ```sql EXEC usp_GetEmployeeDetails 1 ``` 在...

    sqlserver的存储过程与 where in 多值参数

    在SQL Server中,存储过程是预编译的SQL语句集合,它们封装了特定的数据库操作,提高了代码的重用性和执行效率。当涉及到处理多个值时,我们常常会遇到如何将这些值作为参数传递给存储过程的问题。本文将探讨在SQL ...

    SQL SERVER数据库开发之存储过程应用.rar

    在SQL Server数据库开发中,存储过程是至关重要的一个部分,它是一种预编译的SQL语句集合,可以被多次调用,以提高数据库操作的效率和安全性。本教程旨在深入探讨存储过程在SQL Server中的应用,帮助开发者更好地...

    SQL Server 2000 存储过程与XML编程2.rar

    如果你不懂存储过程,你看这个,如果你想深究存储过程,看这个。你下载了给我发邮件:我给你实例数据库,也就是书里面的所有的例程和其他的!sunwu5212@126.com 。用超星阅读,文件很大!分两部分,此为第二部分!

    sql_server_2000,2005_存储过程解密过程

    ### SQL Server 2000与2005存储过程解密详解 #### 背景与重要性 在SQL Server 2000及2005版本中,存储过程可以被加密以保护敏感代码免受未授权访问。然而,在某些情况下,如维护、审计或迁移场景中,可能需要对...

    C#连接sql server 2005的存储过程例子大全.rar

    本压缩包“C#连接sql server 2005的存储过程例子大全.rar”提供了一系列示例,帮助开发者理解和应用C#连接SQL Server 2005进行存储过程操作。 首先,存储过程(Stored Procedure)是预编译的SQL语句集合,存储在...

    SQLSERVER2000数据库例子

    标签中的"SQLSERVER 2000"强调了这是关于SQL Server 2000的信息,"数据库"是指其核心功能是存储和管理数据,而"实例"则指的是在SQL Server服务中运行的一个独立的数据库服务器进程,每个实例可以管理一个或多个...

    SQL SERVER2000数据库备份和恢复存储过程.rar_SQL 备份_recovery in SQL_sql server

    SQL Server 2000中的备份存储过程主要包括`BACKUP DATABASE`和`BACKUP LOG`。`BACKUP DATABASE`用于执行完整备份或差异备份,它可以配合`WITH`子句设置备份选项,如压缩、加密或标记备份。`BACKUP LOG`用于日志备份...

    SQL_server存储过程语法及实例

    SQL_server 存储过程语法及实例 创建存储过程 删除存储过程

    实例讲解JSP调用SQL Server的存储过程

    实例讲解JSP调用SQL Server的存储过程 知识点一:创建表 在SQL Server中,创建表是使用CREATE TABLE语句来实现的。在这个例子中,我们创建了一个名为BookUser的表,包含了多个字段,例如UserID、UserName、Title、...

    SQL server存储过程语法及实例

    SQL Server存储过程是SQL Server中为了完成特定功能的SQL语句集,可以看作是一个或多个SQL语句的封装,用于实现特定的业务逻辑或功能,可以包含逻辑控制、数据处理等代码。存储过程可以简化复杂的操作、增强性能、...

Global site tag (gtag.js) - Google Analytics