数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
My Second PL/SQL Procedure

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

CREATE OR REPLACE PROCEDURE Mk_Csyb_Xxsc(p_region VARCHAR2, p_ny VARCHAR2, p_loginid VARCHAR2, p_deptno VARCHAR2) as
   p_nf Varchar2(4) := substr(p_ny,0,4);
BEGIN
   delete from mk_csyb_temp where LOGINID = p_loginid and DEPTNO = p_deptno and REGION = p_region;
-----------------------------------------
-----东部市场
-----------------------------------------
   if p_region = 'db' then
     
      DBMS_OUTPUT.PUT_LINE('东部Before!!!'|| p_region ||'  '|| p_ny ||'  '|| p_loginid ||'  '|| p_deptno);
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* 东部市场创收月报mk_csyb_dbsc中的指标完成 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               bm_ytdw.bkdm BKDM, bm_ytdw.bk BKMC, nvl(bm_ytdw.xh,199) GSXH, bm_ytdw.mc GSMC, p_ny NY, '1' QYXH, A.QY NEWQY,
               mk_csyb_dbsc.ZBE ZBE, mk_csyb_dbsc.ZBDW ZBDW
        from bm_ytdw,mk_csyb_dbsc, (select * from (select distinct(QY) QY from mk_csyb_dbsc where ny = p_ny) qy, (select distinct(dwdm) dwdm from mk_csyb_dbsc where ny = p_ny) dwdm) A
        where bm_ytdw.dm = A.dwdm
          and mk_csyb_dbsc.ny(+) = p_ny
          and mk_csyb_dbsc.qy(+) = A.qy
          and mk_csyb_dbsc.dwdm(+) = A.dwdm
      );

      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* mk_cszb_db表中所有的东部创收年度指标 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               bm_ytdw.bkdm BKDM, bm_ytdw.bk BKMC, nvl(bm_ytdw.xh,199) GSXH, bm_ytdw.mc GSMC, p_ny NY, '0' QYXH, '年度指标' NEWQY,
               mk_cszb_db.DBZB ZBE, '' ZBDW
        from bm_ytdw,mk_cszb_db
        where bm_ytdw.dm = mk_cszb_db.dw
          and mk_cszb_db.nf = p_nf
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* 每个公司的指标完成率 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               max(bm_ytdw.bkdm) BKDM, bm_ytdw.bk BKMC, nvl(max(bm_ytdw.xh),199) GSXH, bm_ytdw.mc GSMC, p_ny NY, '3' QYXH, '完成率' NEWQY,
               decode(max(mk_cszb_db.DBZB),0,0,(sum(mk_csyb_dbsc.ZBE)/max(mk_cszb_db.DBZB))*100) ZBE, max(mk_csyb_dbsc.ZBDW) ZBDW
        from bm_ytdw,mk_csyb_dbsc,mk_cszb_db
        where bm_ytdw.dm = mk_csyb_dbsc.dwdm
          and bm_ytdw.dm = mk_cszb_db.dw
          and mk_csyb_dbsc.ny = p_ny
          and mk_cszb_db.nf = p_nf
        group by bm_ytdw.bk,bm_ytdw.mc
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* 每个公司的指标完成总计 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               max(bm_ytdw.bkdm) BKDM,bm_ytdw.bk BKMC, nvl(max(bm_ytdw.xh),199) GSXH, bm_ytdw.mc GSMC, p_ny NY, '2' QYXH, '总计' NEWQY,
               sum(mk_csyb_dbsc.ZBE) ZBE, max(mk_csyb_dbsc.ZBDW) ZBDW
        from bm_ytdw,mk_csyb_dbsc
        where bm_ytdw.dm = mk_csyb_dbsc.dwdm
          and mk_csyb_dbsc.ny = p_ny
        group by bm_ytdw.bk,bm_ytdw.mc
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /*********************************************/
        /****************开始   小 计 ****************/
        /*按区块和区域分组的  各油区指标完成小计 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               max(bm_ytdw.bkdm) BKDM,bm_ytdw.bk BKMC, 200 GSXH, '**小  计**' GSMC, p_ny NY, '1' QYXH, mk_csyb_dbsc.QY NEWQY,
               sum(mk_csyb_dbsc.ZBE) ZBE, max(mk_csyb_dbsc.ZBDW) ZBDW
        from bm_ytdw,mk_csyb_dbsc
        where bm_ytdw.dm = mk_csyb_dbsc.dwdm
          and mk_csyb_dbsc.ny = p_ny
        group by bm_ytdw.bk,mk_csyb_dbsc.QY
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* 按区块划分的  年度指标小计 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               max(bm_ytdw.bkdm) BKDM,bm_ytdw.bk BKMC, 200 GSXH, '**小  计**' GSMC, p_ny NY, '0' QYXH, '年度指标' NEWQY,
               sum(mk_cszb_db.DBZB) ZBE, '' ZBDW
        from bm_ytdw,mk_cszb_db
        where bm_ytdw.dm = mk_cszb_db.dw
          and mk_cszb_db.nf = p_nf
        group by bm_ytdw.bk
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* 按区块分组的  指标完成总计 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               max(bm_ytdw.bkdm) BKDM,bm_ytdw.bk BKMC, 200 GSXH, '**小  计**' GSMC, p_ny NY, '2' QYXH, '总计' NEWQY,
               sum(mk_csyb_dbsc.ZBE) ZBE, max(mk_csyb_dbsc.ZBDW) ZBDW
        from bm_ytdw,mk_csyb_dbsc
        where bm_ytdw.dm = mk_csyb_dbsc.dwdm
          and mk_csyb_dbsc.ny = p_ny
        group by bm_ytdw.bk
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* 按区块分组的  小计的指标完成率 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               A.BKDM BKDM, A.BKMC BKMC, A.GSXH GSXH, A.GSMC GSMC, A.NY NY, A.QYXH QYXH, A.QY NEWQY,
               decode(A.zbe,0,0,nvl(B.zbe,0)/A.zbe*100) ZBE, '' ZBDW
        from
             /*----- 按区块划分的  年度指标小计*/
             (select max(bm_ytdw.bkdm) BKDM,bm_ytdw.bk BKMC, 200 GSXH, '**小  计**' GSMC, p_ny NY, '3' QYXH, '完成率' QY,
                     sum(mk_cszb_db.DBZB) ZBE, '' ZBDW
              from bm_ytdw,mk_cszb_db
              where bm_ytdw.dm = mk_cszb_db.dw
                and mk_cszb_db.nf = p_nf
              group by bm_ytdw.bk) A,
             /*----- 按区块分组的  指标完成总计*/
             (select max(bm_ytdw.bkdm) BKDM, sum(mk_csyb_dbsc.ZBE) ZBE
              from bm_ytdw,mk_csyb_dbsc
              where bm_ytdw.dm = mk_csyb_dbsc.dwdm
                and mk_csyb_dbsc.ny = p_ny
              group by bm_ytdw.bk) B
        where A.BKDM = B.BKDM(+)
      /****************结束   小 计 ****************/
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /****************开始   总 计 ****************/
        /* 年度指标额的总计 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               'ZZZZ' BKDM,'=====总  计=====' BKMC, 200 GSXH, ' ' GSMC, p_ny NY, '0' QYXH, '年度指标' NEWQY,
               sum(mk_cszb_db.DBZB) ZBE, '' ZBDW
        from bm_ytdw,mk_cszb_db
        where bm_ytdw.dm = mk_cszb_db.dw
          and mk_cszb_db.nf = p_nf
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* 各个域区的指标完成总计 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               'ZZZZ' BKDM, '=====总  计=====' BKMC, 200 GSXH, ' ' GSMC, p_ny NY, '1' QYXH, mk_csyb_dbsc.QY NEWQY,
               sum(mk_csyb_dbsc.ZBE) ZBE, '' ZBDW
        from bm_ytdw,mk_csyb_dbsc
        where bm_ytdw.dm = mk_csyb_dbsc.dwdm
          and mk_csyb_dbsc.ny = p_ny
        group by mk_csyb_dbsc.QY
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* 指标完成总计 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               'ZZZZ' BKDM, '=====总  计=====' BKMC, 200 GSXH, ' ' GSMC, p_ny NY, '2' QYXH, '总计' NEWQY,
               sum(mk_csyb_dbsc.ZBE) ZBE, '' ZBDW
        from bm_ytdw,mk_csyb_dbsc
        where bm_ytdw.dm = mk_csyb_dbsc.dwdm
          and mk_csyb_dbsc.ny = p_ny
      );
     
      insert into mk_csyb_temp (loginid, deptno, region, bkdm, bkmc, gsxh, gsmc, ny, qyxh, qy, zbe, zbdw)
      ( /* 总计完成率 */
        select p_loginid LOGINID, p_deptno DEPTNO, p_region REGION,
               A.BKDM BKDM, A.BKMC BKMC, A.GSXH GSXH, A.GSMC GSMC, A.NY NY, A.QYXH QYXH, A.QY NEWQY,
               decode(A.zbe,0,0,nvl(B.zbe,0)/A.zbe*100) ZBE, '' ZBDW
        from
             /* 年度指标额的总计 */
             (select 'ZZZZ' BKDM,'=====总  计=====' BKMC, 200 GSXH, ' ' GSMC, p_ny NY, '3' QYXH, '完成率' QY,
                     sum(mk_cszb_db.DBZB) ZBE, '' ZBDW
              from bm_ytdw,mk_cszb_db
              where bm_ytdw.dm = mk_cszb_db.dw
                and mk_cszb_db.nf = p_nf) A,
             /* 指标完成总计 */
             (select 'ZZZZ' BKDM, sum(mk_csyb_dbsc.ZBE) ZBE
              from bm_ytdw,mk_csyb_dbsc
              where bm_ytdw.dm = mk_csyb_dbsc.dwdm
                and mk_csyb_dbsc.ny = p_ny) B
      );
        /****************结束   总 计 ****************/

      DBMS_OUTPUT.PUT_LINE('东部Success!!!'|| p_region ||'  '|| p_ny ||'  '|| p_loginid ||'  '|| p_deptno);
   end if;

     commit;
     exception when others then
     rollback;
END Mk_Csyb_Xxsc;




相关文章

相关软件