zoukankan      html  css  js  c++  java
  • 在sql查询中使用表变量

    代码
    USE [DAF_DB]
    GO
    /****** Object:  StoredProcedure [dbo].[PROG_WORKTASK_List]    Script Date: 06/14/2010 21:14:43 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    --[PROG_WORKTASK_List] 62,0,'','',0,0,'',''

    -- =============================================
    --
     Author:        guo.lin
    --
     Create date: 2010-03-10
    --
     Description:    获取工作任务单列表,根据相关条件
    --
     =============================================
    ALTER PROCEDURE [dbo].[PROG_WORKTASK_List] 
        
    @userID varchar(10),    ---当前用户
        @status int,    ---状态
        @Leader varchar(30),
        
    @Facilitators varchar(30),
        
    @Level int ,
        
    @Priority int,
        
    @CloseDT varchar(30),
        
    @CreatedBy varchar(30)

    AS
    BEGIN
        
    declare @result table(
            taskid 
    int,
            TaskName 
    nvarchar(100),
            TaskTopic 
    nvarchar(100),
            
    Level varchar(10),
            Priority 
    varchar(10),
            Status 
    varchar(10),
            Leader 
    varchar(100),
            strLeader 
    nvarchar(500),
            Facilitators 
    varchar(100),
            cycletime 
    varchar(10),
            CloseDT 
    datetime,
            Createddt 
    datetime,
            CreatedBy 
    varchar(30)
        )
        
        
    insert into @result select taskid,TaskName,TaskTopic,Level,Priority,Status,Leader,strLeader,Facilitators,cycletime,CloseDT,Createddt,CreatedBy 
            
    from Work_TaskProcess where createdby=@CreatedBy or leader like '%|'+@userid+'|%' or Facilitators like '%|'+@userid+'|%'

        
    if (@status <>0)
            
    delete @result where status<>@status
        
    if (@Leader<>'')
            
    delete @result where leader not like '%|'+@Leader+'|%'
    --    if (@CreatedBy<>'')
    --
            delete @result where CreatedBy<>@CreatedBy
        if (@Level <> 0
            
    delete @result where level<>@level
        
    if (@Priority <> 0)
            
    delete @result where Priority<>@Priority
        
    if (@CloseDT<>'')
            
    delete @result where CloseDT<>@CloseDT

        
    update @result set status=b.itemtext from @result a,DAF_Item b where a.Status=b.itemvalue and b.itemtype='worktaskStatus'
        
    update @result set Level=b.itemtext from @result a,DAF_Item b where a.Level=b.itemvalue and b.itemtype='worktaskLevel'
        
    update @result set Priority=b.itemtext from @result a,DAF_Item b where a.Priority=b.itemvalue and b.itemtype='worktaskPriority'
        
    update @result set createdby=b.username from @result a, DAF_useraccount b where a.createdBy=b.userid
        
    update @result set cycletime=cycletime+''

        
        
    select taskid,TaskName,TaskTopic,Level,Priority,Status,strLeader,Facilitators,cycletime,CloseDT,Createddt,CreatedBy from @result order by Createddt desc

    END


    作者: 火地晋
    出处: http://yelaiju.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    c++ explicit 用法摘抄
    FBX SDK 从2012.1 到 2013.3 变化
    虚幻4 虚拟漫游场景 制作过程
    3DMAX 建立场景 工作流程
    保存路径选择对话框
    MFC 简单输出EXCEL
    快速使用Log4Cpp
    C# 调用 MFC DLL
    VS建立可供外部调用的MFC类DLL,C#调用MFC调用
    面试中被问到 “你对加班的看法” 该如何回答?
  • 原文地址:https://www.cnblogs.com/yelaiju/p/1758394.html
Copyright © 2011-2022 走看看