SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --用于挂号占号,取消减号 ALTER proc [WX_ZJB1_Update] @VAA07 int, @Seize int, @Aplace tinyint = 1 --1=线下、2=线上 as begin Declare @VAA01 int , @VAC44 datetime , @BCE01A int , @BCK01A int , @VAC36 datetime , @ZJB01 varchar(64) SELECT @VAA01 = VAA01 ,@VAC44 = ISNULL(VAC44,VAC36),@BCE01A=BCE01A ,@BCK01A=BCK01A,@VAC36=@VAC36 from VAC1 with(nolock) where VAC01 = @vaa07 if @seize=1 BEGIN SELECT top 1 @ZJB01 = b.ZJB01 from ZJB1 b with(nolock) join ZAA1 a with(nolock) on a.zaa01 =b.ZAA01 where CONVERT(varchar(10), @VAC44, 120)=CONVERT(varchar(10),ZJB05 ,120) and @VAC44 <(CONVERT(datetime,convert(varchar(10),ZJB05 ,120)+' '+ right(ZJB06 ,8))) and BCE01=@BCE01A and BCK01=@BCK01A and b.DFLAG=0 and ZJB19 in(0 , @Aplace) and ZJB08 =1 and VAA01 is null order by ZJB04 update b set b.VAA01 = @VAA01 , b.VAC01 = @VAA07 , b.ZJB09 ='线下', ZJB07=1 from ZJB1 b --join ZAA1 a on a.zaa01 =b.zaa01 where b.ZJB01 = @ZJB01 --@vac44<(CONVERT(datetime,convert(varchar(10),zjb05,120)+' '+ right(zjb06,8))) --and Convert(varchar(10), @vac44, 120)=convert(varchar(10),zjb05,120) --and bck01=@BCK01A --and bce01=@BCE01A --and zjb08=1 --and vaa01 is null --and --zjb01 =( --select top 1 zjb01 from zjb1 b with(nolock) -- join zaa1 a with(nolock) on a.zaa01 =b.zaa01 --where DFLAG=0 and ZJB19 in(0 , @Aplace) and Convert(varchar(10), @vac44, 120)=convert(varchar(10),zjb05,120)and bck01=@BCK01A and bce01=@BCE01A and zjb08=1 and vaa01 is null --and @vac44<(CONVERT(datetime,convert(varchar(10),zjb05,120)+' '+ right(zjb06,8))) --order by zjb04) END ELSE update b set b.vaa01=NULL , b.vac01 = NULL, b.zjb09=null, ZJB07=0 from ZJB1 b join ZAA1 a with(nolock) on a.zaa01 =b.zaa01 join VAC1 c with(nolock) on b.vac01=c.vac01 where Convert(varchar(10), GETDATE(), 120)=convert(varchar(10),zjb05,120) and b.vac01=@vaa07 and zjb08=1 --and bck01=@BCK01A and bce01=@BCE01A end