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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    JavaScript初学者应注意的七个细节
    KindEditor 编辑器使用方法
    有关 JavaScript 的 10 件让人费解的事情
    能说明你的Javascript技术很烂的五个原因
    分享10个便利的HTML5/CSS3框架
    现在就使用HTML5的十大原因
    你应该知道的Node.js扩展模块——Hashish
    C++ Tip: How To Get Array Length | Dev102.com
    MPI for Python — MPI for Python v1.3 documentation
    http://construct.readthedocs.org/en/latest/basics.html
  • 原文地址:https://www.cnblogs.com/yelaiju/p/1758394.html
Copyright © 2011-2022 走看看