函数和游标

来源:互联网 发布:人工智能 国家政策 编辑:程序博客网 时间:2024/05/17 04:31
if   exists(select   1   from   sysobjects   where   id=object_id('St_FunPostDayTimeout')) 
drop Function St_FunPostDayTimeout
go
Create Function St_FunPostDayTimeout()
returns varchar(2000)
as
begin
declare MyCursor cursor
for (select distinct count(budid) countBudid ,budid,budname from vw_WorkOrdWarning a inner join house b on a.WOID=b.id where 
EWholeTime<getdate() and WorkOrdState='WOSta_TimeoutUnfinished' group by budid,budname)
open MyCursor
declare @countBudid varchar(2000),@budid varchar(20),@budname varchar(20),@Info varchar(2000),@sumCountPost int
set @sumCountPost=0
set @Info='分别('
fetch next from  MyCursor into @countBudid,@budid,@budname
while (@@fetch_status=0) 
begin
set @sumCountPost=@sumCountPost+@countBudid
set @Info=@Info+@budname+@countBudid+'件、'
fetch next from  MyCursor into @countBudid,@budid,@budname
end
close MyCursor
deallocate MyCursor
set @Info='本日超期事件'+convert(varchar(1000),@sumCountPost)+'件'+substring(@Info,1,len(@Info)-1)+');'
return @Info
end
go