在sql查询中使用表变量

所属分类: 数据库 / MsSql 阅读数: 623
收藏 0 赞 0 分享
复制代码 代码如下:

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
更多精彩内容其他人还在看

SQL Substring提取部分字符串

SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样
收藏 0 赞 0 分享

用户"sa"登陆失败 SQLServer 错误18456的解决方法

sqlserver下用sa登录提示18456错误的解决方法。
收藏 0 赞 0 分享

drop,truncate与delete的区别

这里说的delete是指不带where子句的delete语句
收藏 0 赞 0 分享

SQL语句查询数据库中重复记录的个数

一个sql语句:一个表test有四个字段id,a,b,c,如果表中的记录有三个字段a,b,c都相等,则说明这条记录是相同的,求相同的记录的个数 。
收藏 0 赞 0 分享

SQL 导入导出Excel数据的语句

从Excel文件中,导入数据到SQL数据库中,很简单
收藏 0 赞 0 分享

可以获取客户端的IP地址的sql语句

利用SQL语句得到客户端的IP地址的代码
收藏 0 赞 0 分享

SQL 根据汉字获取全拼的代码

SQL 根据汉字获取全拼(有些字还没有添加上去,请自已加上去,涂聚文注)
收藏 0 赞 0 分享

sqlserver exists,not exists的用法

exists,not exists的使用方法示例,需要的朋友可以参考下。
收藏 0 赞 0 分享

sqlserver substring函数使用方法小结

在操作sqlserver时候用到了substring函数,特整理一些实例,需要的朋友可以参考下。
收藏 0 赞 0 分享

sql 判断数据库,表,存储过程等是否存在的代码

sql下用了判断各种资源是否存在的代码,很实用。需要的朋友可以参考下。
收藏 0 赞 0 分享
查看更多