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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    闪回还原点解析
    先有鸡还是先有蛋的争论
    Android缓存处理
    hdu 1398 Square Coins (母函数)
    JSON具体解释
    【LeetCode】String to Integer (atoi) 解题报告
    【Linux探索之旅】第一部分第四课:磁盘分区,并完毕Ubuntu安装
    MySQL排序:SELECT ORDER BY
    架构师速成7.3-devops为什么非常重要
    升级Linux内核导致vmware无法使用(vmnet模块无法编译)解决方式
  • 原文地址:https://www.cnblogs.com/yelaiju/p/1758394.html
Copyright © 2011-2022 走看看