想实现以下存储过程效果,但结果怎么都是@qy=0
肯定是哪里写错了,谁能帮我看下?
--- 从hr_qhcjlis表中的判断3种情况,
--- if (xj<>1) 第一种是正常申请的请假单(未申请销假),
--- if (xj=1)and(shzt like 3 is not exist) 第二种 请假单已申请销假(但未销假签核)
--- if (xj=1)and(shzt like 3 ) 第三种 请假单已销假签核
(shzt字段的值:有可能是112或131或312或213... 所以我只要里面有3的存在 就是销假已签核)CREATE PROCEDURE p_checkXj2
@djh varchar(20),
@qy varchar(10) out AS
begin
declare @shzt varchar(10)
declare @xj varchar(10)select @shzt=shzt,@xj=xj from hr_qhcjlis where djh=@djh if (@xj<>'1' )set @qy='1' --第一种 说明是正常申请的请假单
if (@xj='1' )and(@shzt like '%‘3’%')
set @qy='2' --第三种 请假单已销假签核else
set @qy ='0' -- 第二种 说明是销假申请中return @qyend
GO
肯定是哪里写错了,谁能帮我看下?
--- 从hr_qhcjlis表中的判断3种情况,
--- if (xj<>1) 第一种是正常申请的请假单(未申请销假),
--- if (xj=1)and(shzt like 3 is not exist) 第二种 请假单已申请销假(但未销假签核)
--- if (xj=1)and(shzt like 3 ) 第三种 请假单已销假签核
(shzt字段的值:有可能是112或131或312或213... 所以我只要里面有3的存在 就是销假已签核)CREATE PROCEDURE p_checkXj2
@djh varchar(20),
@qy varchar(10) out AS
begin
declare @shzt varchar(10)
declare @xj varchar(10)select @shzt=shzt,@xj=xj from hr_qhcjlis where djh=@djh if (@xj<>'1' )set @qy='1' --第一种 说明是正常申请的请假单
if (@xj='1' )and(@shzt like '%‘3’%')
set @qy='2' --第三种 请假单已销假签核else
set @qy ='0' -- 第二种 说明是销假申请中return @qyend
GO
加一句调试看看
select @shzt,@xj
if (@xj='1' )and(@shzt like '%‘3’%')