手机分类
  导航: 电脑时代在线 · 数据库教程 · MSSQL教程 · Sql2000实例技巧
有问题吗?看 疑难解答 电脑术语

存储过程---实践

 
硬件盘点
手机推荐
 
『存储过程---实践』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2005-7-12 


   

1,fgw_proc1:


CREATE PROCEDURE fgw_proc1(@begin int , @end int)
AS

    SET NOCOUNT ON
    DECLARE @userid int, @handled float, @total float

    CREATE TABLE #temp_proc1
    (
    userid int,
    handled float,
    total float
    )
    --get @total
    DECLARE cur_cr CURSOR FOR SELECT count(*) FROM AHD.AHD.call_req where open_date>@begin and open_date<@end
    OPEN cur_cr
    FETCH cur_cr INTO @total
    CLOSE cur_cr
    DEALLOCATE cur_cr
   
    DECLARE cur_ctct CURSOR FOR SELECT id FROM AHD.AHD.ctct
    OPEN cur_ctct
    FETCH cur_ctct INTO @userid
    WHILE @@FETCH_STATUS = 0
        BEGIN
 --get @handle through exec fgw_proc2
 EXEC fgw_proc2 @userid , @begin , @end , @handled output
        INSERT INTO #temp_proc1 VALUES (@userid , @handled , @total)
 FETCH NEXT FROM cur_ctct INTO @userid
        END
    CLOSE cur_ctct
    DEALLOCATE cur_ctct
    SELECT * FROM #temp_proc1
    DROP TABLE #temp_proc1


drop procedure fgw_proc1
exec fgw_proc1 1,1


2,fgw_proc2

CREATE PROCEDURE fgw_proc2(@userid int , @begin int , @end int , @handled float OUTPUT)
AS

    SET NOCOUNT ON
    SET @handled = 0
    DECLARE @cr_id int, @zh_id int, @status char(20), @to_status char(20), @cnt int, @open_date int
    DECLARE cur_crzh CURSOR FOR SELECT * FROM AHD.dbo.FGW_CR_ZH where cnt = @userid
    OPEN cur_crzh
    FETCH cur_crzh INTO @cr_id, @zh_id, @status, @to_status, @cnt, @open_date
    WHILE @@FETCH_STATUS = 0
        BEGIN
 DECLARE @count2 int
        DECLARE cur_crzh2 CURSOR FOR SELECT count(*) FROM AHD.dbo.FGW_CR_ZH where cr_id = @cr_id and open_date>@begin and open_date<@end
 OPEN cur_crzh2
 FETCH cur_crzh2 INTO @count2
 CLOSE cur_crzh2
 DEALLOCATE cur_crzh2
 IF @count2 != 0
  SET @handled = @handled + 1 / @count2
 FETCH NEXT FROM cur_crzh INTO @cr_id, @zh_id, @status, @to_status, @cnt, @open_date
        END
    CLOSE cur_crzh
    DEALLOCATE cur_crzh
    --SELECT @handled

 

drop procedure fgw_proc2
exec fgw_proc2 1,1,1

3,fgw_proc3


CREATE PROCEDURE fgw_proc3(@begin int , @end int)
AS

    SET NOCOUNT ON
    DECLARE @cr_id int, @zh_id int, @cnt int, @sym char(30), @time_stamp int, @isOK int

    CREATE TABLE #temp_proc3
    (
    cr_id int,
    zh_id int,
    cnt int,
    isOK int
    )
   
    DECLARE cur_crzhsd CURSOR FOR SELECT cr.id,zh.id,zh.to_cnt,sd.sym,zh.time_stamp FROM AHD.AHD.call_req as cr LEFT OUTER JOIN AHD.AHD.ztr_his as zh ON cr.persid=zh.call_req_id LEFT OUTER JOIN AHD.AHD.srv_desc as sd ON cr.support_lev=sd.code WHERE cr.type='I' and cr.open_date>@begin and cr.open_date<@end and zh.

[1] [2] 下一页  


如果您有什么疑问,可以至论坛提出或者解答他人的疑问   返回页面顶部

】【关闭窗口
·上一篇教程:
·下一篇教程:
·导航: 电脑时代在线 · 数据库教程 · MSSQL教程 · Sql2000实例技巧
相关文章
 
搞笑自拍|图片故事|美女图库|体坛宝贝|明星爆料|世界奇观|风光摄影|历史回忆|大千世界
Photshop超炫图片
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部  
网站文本地图
  版权所有:电脑时代在线 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2007 www.PCvz.com online services. all rights reserved. 蜀ICP备05015578
Template designed by LaoJiang. Optimized for 1024x768 to Firefox,Opera and MS-IE. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光