|
Crystal Reports 和sql-server共同进行报表的开发--存储过程-实践(3) OPEN cur11_1 FETCH cur11_1 INTO @cr_id, @zh_id, @status, @to_status, @cnt, @open_date /*事件id,历史id,状态,处理人,打开时间取所需要的值*/ WHILE @@FETCH_STATUS = 0 /*循环每一个记录*/ BEGIN DECLARE @count2 int /*每个事件单在历史记录中有多少条*/ DECLARE cur11_2 CURSOR FOR SELECT count(*) FROM AHD.call_req LEFT OUTER JOIN AHD.ztr_his ON AHD.call_req.persid = AHD.ztr_his.call_req_id WHERE AHD.call_req.type='I' AND (AHD.call_req.status IN ('CL', 'TTPC')) AND (AHD.ztr_his.to_status IN ('L1WIP', 'L2WIP', 'ICP', 'SRBYL1', 'SRBYL2', 'NCCBYL1', 'NCCBYL2', 'CRBYL1', 'CRBYL2')) AND (AHD.call_req.open_date>@begin) AND (AHD.call_req.open_date<@end) AND (AHD.call_req.id = @cr_id) OPEN cur11_2 FETCH cur11_2 INTO @count2 CLOSE cur11_2 DEALLOCATE cur11_2 IF @count2 <> 0 SET @handled = @handled + 1.0 / @count2 /*此人的处理完成数*/ FETCH NEXT FROM cur11_1 INTO @cr_id, @zh_id, @status, @to_status, @cnt, @open_date /*循环记录*/ END CLOSE cur11_1 DEALLOCATE cur11_1 --total /*计算此人的处理故障数*/ DECLARE cur11_3 CURSOR FOR SELECT count(distinct(AHD.call_req.id)) FROM AHD.call_req LEFT OUTER JOIN AHD.ztr_his ON AHD.call_req.persid = AHD.ztr_his.call_req_id WHERE AHD.call_req.type='I' AND (AHD.call_req.open_date>@begin AND AHD.call_req.open_date<@end) AND (AHD.ztr_his.to_cnt = @userid) /*取此人所有单*/
|