22,209
社区成员
发帖
与我相关
我的任务
分享
--try
if OBJECT_ID('SF_COUNT_MAX','P') IS NOT NULL
DROP PROC SF_COUNT_MAX
GO
CREATE PROC SF_COUNT_MAX @j NVARCHAR(5)
as
begin
DECLARE @SQL NVARCHAR(3000)
DECLARE @i int
set @i=1
set @SQL='update vw_comp100 set diff1=1,diff2=0'
exec(@SQL)
while @i<=cast(@j as int)
begin
set @SQL='update vw_comp100 set diff1=case when D'+cast(@i as nvarchar(5))+'=D'+cast((@i+1) as nvarchar(5))
+' then diff1+1 else 1 end,diff2= case when D'+cast(@i as nvarchar(5))
+'!=D'+cast((@i+1) as nvarchar(5))+' and diff2<diff1 then diff1 else diff2 end'
exec(@SQL)
set @i=@i+1
end
set @SQL=' update vw_comp100 set diff2=diff1
where diff2<diff1 '
exec(@SQL)
END
go
exec SF_COUNT_MAX 1