存储过程使用游标
Create PROCEDURE [dbo].[Pro_ComplaintsCount]
@StarDate varchar(30),@EndDate varchar(30)
AS
Begin
--Declare @ComplaintType int --大类ID
Declare @Type varchar(50)--大类名称
Declare @Finsh int
Declare @UnFinsh int
Declare @Total int
--Declare @CompCate int
Declare @Cate varchar(50)
--建立临时表
Declare @tmpdata table
(
--ComplaintType int,
Type varchar(50),
--CompCate int,
Cate varchar(50),
Finsh int,
UnFinsh int,
Total int
)
/*建立游标*/
DECLARE Cate_cursor CURSOR for --定义游标Cate_cursor
select Cate from ComCateInfo
Open Cate_cursor
Fetch Next from Cate_cursor --将游标向下移行,获取的数据放入之前定义的变量@Cate中
into @Cate
/*开始循环*/
WHILE @@FETCH_STATUS = 0 --判断是否成功获取数据
Begin
--投诉类型名称
select @Type = Type from ComCateInfo where Cate=@Cate
--已处理
select @Finsh = Count(*) from V_ComplaintsCount where Cate=@Cate and WorkItemStatus=1 and CompDate>= @StarDate and CompDate<=@EndDate
--未处理
select @UnFinsh = Count(*) from V_ComplaintsCount where Cate=@Cate and WorkItemStatus=0 and CompDate>= @StarDate and CompDate<=@EndDate
--投诉数据
select @Total = @Finsh + @UnFinsh
insert into @tmpdata
select @Type,@Cate,@Finsh,@UnFinsh,@Total
Fetch Next from Cate_cursor --将游标向下移行
into @Cate
End
CLOSE Cate_cursor
DEALLOCATE Cate_cursor
Select * from @tmpdata
End
19:25:21
卢强 2014-05-08 19:25:21
ALTER Procedure [dbo].[P_Score]
@PID varchar(10)
as
Declare @cond varchar(1000),@sql varchar(5000)
select @cond = (select CONTENT from V_Temp_DATA where DATA_ID=@PID)
set @sql ='select * from V_TesMan where ' + @cond
--select @sql
exec(@sql)
@StarDate varchar(30),@EndDate varchar(30)
AS
Begin
--Declare @ComplaintType int --大类ID
Declare @Type varchar(50)--大类名称
Declare @Finsh int
Declare @UnFinsh int
Declare @Total int
--Declare @CompCate int
Declare @Cate varchar(50)
--建立临时表
Declare @tmpdata table
(
--ComplaintType int,
Type varchar(50),
--CompCate int,
Cate varchar(50),
Finsh int,
UnFinsh int,
Total int
)
/*建立游标*/
DECLARE Cate_cursor CURSOR for --定义游标Cate_cursor
select Cate from ComCateInfo
Open Cate_cursor
Fetch Next from Cate_cursor --将游标向下移行,获取的数据放入之前定义的变量@Cate中
into @Cate
/*开始循环*/
WHILE @@FETCH_STATUS = 0 --判断是否成功获取数据
Begin
--投诉类型名称
select @Type = Type from ComCateInfo where Cate=@Cate
--已处理
select @Finsh = Count(*) from V_ComplaintsCount where Cate=@Cate and WorkItemStatus=1 and CompDate>= @StarDate and CompDate<=@EndDate
--未处理
select @UnFinsh = Count(*) from V_ComplaintsCount where Cate=@Cate and WorkItemStatus=0 and CompDate>= @StarDate and CompDate<=@EndDate
--投诉数据
select @Total = @Finsh + @UnFinsh
insert into @tmpdata
select @Type,@Cate,@Finsh,@UnFinsh,@Total
Fetch Next from Cate_cursor --将游标向下移行
into @Cate
End
CLOSE Cate_cursor
DEALLOCATE Cate_cursor
Select * from @tmpdata
End
19:25:21
卢强 2014-05-08 19:25:21
ALTER Procedure [dbo].[P_Score]
@PID varchar(10)
as
Declare @cond varchar(1000),@sql varchar(5000)
select @cond = (select CONTENT from V_Temp_DATA where DATA_ID=@PID)
set @sql ='select * from V_TesMan where ' + @cond
--select @sql
exec(@sql)

浙公网安备 33010602011771号