zoukankan      html  css  js  c++  java
  • sguf冲销脚本的实现

    1.该脚本为PCISS项目的sguf冲销脚本:

      1 DECLARE 
      2 type typ_sguf_table is table of sguf_rowid_tab_1%rowtype ;
      3  sguf_tab typ_sguf_table;
      4 v_insert_sql cLOB; 
      5 BEGIN 
      6 SELECT * BULK COLLECT INTO sguf_tab
      7 FROM sguf_rowid_tab_1 s
      8 WHERE s.ID=1053235 AND s.NO='BSD20170901000054' ;
      9 IF sguf_tab.last >1 THEN
     10  RETURN ;
     11  ELSE
     12 FOR i IN sguf_tab.first .. sguf_tab.last  LOOP
     13 
     14 
     15 v_insert_sql :='
     16 INSERT INTO sguf_rowid_tab_1 
     17 VALUES ('||
     18 sguf_tab(i).ID                               ||' , '||
     19 chr(39)||sguf_tab(i).PRODUCTCODE||chr(39)                   ||' , '||
     20 chr(39)||sguf_tab(i).NO||chr(39)                            ||' , '||
     21 chr(39)||sguf_tab(i).SUBNO||chr(39)                         ||' , '||
     22 'to_date('||CHR(39)||sguf_tab(i).ACCOUNTDATE||CHR(39)||')'                                   ||' , '||
     23 'to_date('||CHR(39)||sguf_tab(i).DEALDATE||CHR(39)||')'          ||' , '||        
     24 'to_date('||CHR(39)||sguf_tab(i).STOPDATE||CHR(39)||')'                                       ||' , '||
     25 chr(39)||sguf_tab(i).SIDE||chr(39)                          ||' , '||
     26 sguf_tab(i).MEMBERID                                        ||' , '||
     27 chr(39)||sguf_tab(i).MEMBERFULLNAME||chr(39)                ||' , '||
     28 chr(39)||sguf_tab(i).MEMBERABBRNAME||chr(39)                ||' , '||
     29 chr(39)||sguf_tab(i).MEMBERCODE||chr(39)                    ||' , '||
     30 chr(39)||sguf_tab(i).MEMBERPARTCODE||chr(39)                ||' , '||
     31 chr(39)||sguf_tab(i).MEMBERTYPE||chr(39)                    ||' , '||
     32 chr(39)||sguf_tab(i).DEALCURRENCY||chr(39)                  ||' , '||
     33 chr(39)||sguf_tab(i).DEALOUTCURRENCY||chr(39)               ||' , '||
     34 CASE WHEN sguf_tab(i).EXCHANGERATE IS NULL THEN 'NULL' ELSE sguf_tab(i).EXCHANGERATE END                                    ||' , '||
     35 CASE WHEN sguf_tab(i).DEALPRICE<>0 THEN  '-'||sguf_tab(i).DEALPRICE ELSE '0'  END                                      ||' , '||
     36 CASE WHEN sguf_tab(i).DEALPRICECNY<>0 THEN  '-'||sguf_tab(i).DEALPRICECNY ELSE '0'  END                                  ||' , '||
     37 CASE WHEN sguf_tab(i).DEALPRICEUSD <>0 THEN  '-'||sguf_tab(i).DEALPRICEUSD  ELSE '0'  END                                 ||' , '||
     38 CASE WHEN sguf_tab(i).MEMBERFEEPRICE <>0 THEN  '-'||sguf_tab(i).MEMBERFEEPRICE  ELSE '0'  END                              ||' , '||
     39 CASE WHEN sguf_tab(i).MEMBERFEEPRICECNY <>0 THEN  '-'||sguf_tab(i).MEMBERFEEPRICEcny  ELSE '0'  END                           ||' , '||
     40 CASE WHEN sguf_tab(i).MEMBERFEEPRICEUSD  <>0 THEN  '-'||sguf_tab(i).MEMBERFEEPRICEusd  ELSE '0'  END                          ||' , '||
     41 chr(39)||sguf_tab(i).DEPARTMENT||chr(39)                    ||' , '||
     42 CASE WHEN sguf_tab(i).PTCOUNT IS NULL THEN 'NULL' ELSE sguf_tab(i).PTCOUNT||'' END                                          ||' , '||
     43 'to_date('||CHR(39)||sguf_tab(i).STARTDATE||CHR(39)||')'                                       ||' , '||
     44 'to_date('||CHR(39)||sguf_tab(i).MATURITYDATE||CHR(39)||')'                                ||' , '||
     45 CASE WHEN sguf_tab(i).RATE        IS NULL THEN 'NULL' ELSE  sguf_tab(i).RATE||''             END                     ||' , '||
     46 CASE WHEN sguf_tab(i).SELFBROKERID IS NULL THEN 'NULL' ELSE sguf_tab(i).SELFBROKERID||''        END                          ||' , '||
     47 chr(39)||sguf_tab(i).SELFBROKERCODE||chr(39)                ||' , '||
     48 chr(39)||sguf_tab(i).SELFBROKERNAME||chr(39)                ||' , '||
     49 CASE WHEN sguf_tab(i).FORMCREATORID IS NULL THEN 'NULL' ELSE sguf_tab(i).FORMCREATORID||''         END                         ||' , '||
     50 chr(39)||sguf_tab(i).FORMCREATORNAME||chr(39)               ||' , '||
     51 CASE WHEN sguf_tab(i).FORMCREATORTIME   IS NULL THEN 'NULL' ELSE chr(39)||sguf_tab(i).FORMCREATORTIME||chr(39)      END                        ||' , '||
     52 CASE WHEN sguf_tab(i).ACCOUNTDAYS      IS NULL THEN 'NULL' ELSE  sguf_tab(i).ACCOUNTDAYS||''             END                ||' , '||
     53 CASE WHEN sguf_tab(i).BROKERID1   IS NULL THEN 'NULL' ELSE    sguf_tab(i).BROKERID1||''                     END           ||' , '||
     54 chr(39)||sguf_tab(i).BROKERCODE1||chr(39)                   ||' , '||
     55 chr(39)||sguf_tab(i).BROKERNAME1||chr(39)                   ||' , '||
     56 CASE WHEN  sguf_tab(i).PARTYMONEY1  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY1=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEY1 END                                    ||' , '||
     57 CASE WHEN  sguf_tab(i).PARTYMONEYCNY1 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY1=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYCNY1 END                                ||' , '||
     58 CASE WHEN  sguf_tab(i).PARTYMONEYUSD1 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD1=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYUSD1 END                              ||' , '||
     59 CASE WHEN sguf_tab(i).PERCENT1    IS NULL THEN 'NULL' ELSE  sguf_tab(i).PERCENT1||''       END       ||' , '||
     60 CASE WHEN sguf_tab(i).BROKERID2   IS NULL THEN 'NULL' ELSE    sguf_tab(i).BROKERID2||''   END     ||' , '||
     61 chr(39)||sguf_tab(i).BROKERCODE2||chr(39)                   ||' , '||
     62 chr(39)||sguf_tab(i).BROKERNAME2||chr(39)                   ||' , '||
     63 CASE WHEN  sguf_tab(i).PARTYMONEY2  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY2=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEY2 END                                  ||' , '||
     64 CASE WHEN sguf_tab(i).PARTYMONEYCNY2  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY2=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYcny2 END                                ||' , '||
     65 CASE WHEN  sguf_tab(i).PARTYMONEYUSD2   IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD2=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYusd2 END                               ||' , '||
     66 CASE WHEN sguf_tab(i).PERCENT2   IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT2||''    END                                 ||' , '||
     67 CASE WHEN sguf_tab(i).BROKERID3  IS NULL THEN 'NULL' ELSE sguf_tab(i).BROKERID3||''    END                                ||' , '||
     68 chr(39)||sguf_tab(i).BROKERCODE3||chr(39)                   ||' , '||
     69 chr(39)||sguf_tab(i).BROKERNAME3||chr(39)                   ||' , '||
     70 CASE WHEN sguf_tab(i).PARTYMONEY3 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY3=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEY3  end                                 ||' , '||
     71 CASE WHEN sguf_tab(i).PARTYMONEYCNY3  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY3=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYcny3 end                               ||' , '||
     72 CASE WHEN sguf_tab(i).PARTYMONEYUSD3 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD3=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYusd3 end                              ||' , '||
     73 CASE WHEN sguf_tab(i).PERCENT3  IS NULL THEN 'NULL' ELSE  sguf_tab(i).PERCENT3||''  END                             ||' , '||
     74 CASE WHEN sguf_tab(i).BROKERID4  IS NULL THEN 'NULL' ELSE  sguf_tab(i).BROKERID4||''         END                          ||' , '||
     75 chr(39)||sguf_tab(i).BROKERCODE4||chr(39)                   ||' , '||
     76 chr(39)||sguf_tab(i).BROKERNAME4||chr(39)                   ||' , '||
     77 CASE WHEN sguf_tab(i).PARTYMONEY4  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY4=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEY4 end                                ||' , '||
     78 CASE WHEN sguf_tab(i).PARTYMONEYCNY4  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY4=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYcny4 end                               ||' , '||
     79 CASE WHEN sguf_tab(i).PARTYMONEYUSD4  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD4=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYUSD4 END                               ||' , '||
     80 CASE WHEN sguf_tab(i).PERCENT4   IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT4||''       END                              ||' , '||
     81 CASE WHEN sguf_tab(i).BROKERID5  IS  NULL THEN 'NULL'  ELSE     sguf_tab(i).BROKERID5||''       END                           ||' , '||
     82 chr(39)||sguf_tab(i).BROKERCODE5||chr(39)                   ||' , '||
     83 chr(39)||sguf_tab(i).BROKERNAME5||chr(39)                   ||' , '||
     84 CASE WHEN sguf_tab(i).PARTYMONEY5    IS NULL THEN 'NULL'  WHEN sguf_tab(i).PARTYMONEY5=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEY5  END                              ||' , '||
     85 CASE WHEN sguf_tab(i).PARTYMONEYCNY5 IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY5=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYCNY5 END                                ||' , '||
     86 CASE WHEN sguf_tab(i).PARTYMONEYUSD5  IS NULL THEN 'NULL'  WHEN sguf_tab(i).PARTYMONEYUSD5=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYUSD5 END                            ||' , '||
     87 CASE WHEN sguf_tab(i).PERCENT5   IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT5||'55---'        END ||' , '||
     88 CASE WHEN sguf_tab(i).BROKERID6  IS NULL THEN 'NULL' ELSE  sguf_tab(i).BROKERID6||'66--'      END   ||' , '||
     89 chr(39)||sguf_tab(i).BROKERCODE6||chr(39)                   ||' , '||
     90 chr(39)||sguf_tab(i).BROKERNAME6||chr(39)                   ||' , '||
     91 CASE WHEN sguf_tab(i).PARTYMONEY6    IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY6=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEY6  END                               ||' , '||
     92 CASE WHEN sguf_tab(i).PARTYMONEYCNY6  IS NULL THEN 'NULL'  WHEN sguf_tab(i).PARTYMONEYCNY6=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYCNY6  END                             ||' , '||
     93 CASE WHEN sguf_tab(i).PARTYMONEYUSD6  IS NULL THEN 'NULL'  WHEN sguf_tab(i).PARTYMONEYUSD6=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYUSD6  END                            ||' , '||
     94 CASE WHEN sguf_tab(i).PERCENT6  IS NULL THEN 'NULL' ELSE  sguf_tab(i).PERCENT6||''  END                                   ||' , '||
     95 CASE WHEN sguf_tab(i).BROKERID7 IS NULL THEN 'NULL' ELSE  sguf_tab(i).BROKERID7||''    END                                  ||' , '||
     96 chr(39)||sguf_tab(i).BROKERCODE7||chr(39)                   ||' , '||
     97 chr(39)||sguf_tab(i).BROKERNAME7||chr(39)                   ||' , '||
     98 CASE WHEN sguf_tab(i).PARTYMONEY7   IS NULL THEN 'NULL'  WHEN sguf_tab(i).PARTYMONEY7=0 THEN '0'  ELSE   '-'||sguf_tab(i).PARTYMONEY7  END                                ||' , '||
     99 CASE WHEN sguf_tab(i).PARTYMONEYCNY7    IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY7=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYCNY7 END                             ||' , '||
    100 CASE WHEN sguf_tab(i).PARTYMONEYUSD7  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD7=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYUSD7 END                               ||' , '||
    101 CASE WHEN sguf_tab(i).PERCENT7    IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENT7||''     END                               ||' , '||
    102 CASE WHEN sguf_tab(i).BROKERID8  IS NULL THEN 'NULL' ELSE   sguf_tab(i).BROKERID8||''   END                               ||' , '||
    103 chr(39)||sguf_tab(i).BROKERCODE8||chr(39)                   ||' , '||
    104 chr(39)||sguf_tab(i).BROKERNAME8||chr(39)                   ||' , '||
    105 CASE WHEN sguf_tab(i).PARTYMONEY8    IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY8=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEY8  END                             ||' , '||
    106 CASE WHEN sguf_tab(i).PARTYMONEYCNY8   IS NULL THEN 'NULL'  WHEN sguf_tab(i).PARTYMONEYCNY8=0 THEN '0'  ELSE   '-'||sguf_tab(i).PARTYMONEYCNY8 END                              ||' , '||
    107 CASE WHEN sguf_tab(i).PARTYMONEYUSD8   IS NULL THEN 'NULL'  WHEN sguf_tab(i).PARTYMONEYUSD8=0 THEN '0'   ELSE   '-'||sguf_tab(i).PARTYMONEYUSD8 END                              ||' , '||
    108 CASE WHEN sguf_tab(i).PERCENT8   IS NULL THEN 'NULL' ELSE   sguf_tab(i).PERCENT8||''   END                               ||' , '||
    109 CASE WHEN sguf_tab(i).BROKERID9   IS NULL THEN 'NULL' ELSE  sguf_tab(i).BROKERID9||''  END                                 ||' , '||
    110 chr(39)||sguf_tab(i).BROKERCODE9||chr(39)                   ||' , '||
    111 chr(39)||sguf_tab(i).BROKERNAME9||chr(39)                   ||' , '||
    112 CASE WHEN sguf_tab(i).PARTYMONEY9   IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY9=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEY9 END                                ||' , '||
    113 CASE WHEN sguf_tab(i).PARTYMONEYCNY9  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY9=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYCNY9 END                               ||' , '||
    114 CASE WHEN sguf_tab(i).PARTYMONEYUSD9  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD9=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYUSD9 END                               ||' , '||
    115 CASE WHEN sguf_tab(i).PERCENT9     IS NULL THEN 'NULL' ELSE  sguf_tab(i).PERCENT9||''  END                                ||' , '||
    116 CASE WHEN sguf_tab(i).BROKERID10  IS NULL THEN 'NULL' ELSE  sguf_tab(i).BROKERID10||'' END                                 ||' , '||
    117 chr(39)||sguf_tab(i).BROKERCODE10||chr(39)                  ||' , '||
    118 chr(39)||sguf_tab(i).BROKERNAME10||chr(39)                  ||' , '||
    119 CASE WHEN sguf_tab(i).PARTYMONEY10   IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEY10=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEY10 END                               ||' , '||
    120 CASE WHEN sguf_tab(i).PARTYMONEYCNY10  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNY10=0 THEN '0'  ELSE   '-'||sguf_tab(i).PARTYMONEYCNY10 END                              ||' , '||
    121 CASE WHEN sguf_tab(i).PARTYMONEYUSD10   IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSD10=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYUSD10 END                             ||' , '||
    122 CASE WHEN sguf_tab(i).PERCENT10    IS NULL THEN 'NULL' ELSE  sguf_tab(i).PERCENT10||'' END                                 ||' , '||
    123 CASE WHEN sguf_tab(i).BROKERIDX   IS NULL THEN 'NULL' ELSE  sguf_tab(i).BROKERIDX||'' END                                    ||' , '||
    124 chr(39)||sguf_tab(i).BROKERCODEX||chr(39)                   ||' , '||
    125 chr(39)||sguf_tab(i).BROKERNAMEX||chr(39)                   ||' , '||
    126 CASE WHEN sguf_tab(i).PARTYMONEYX     IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYX=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYX  END                            ||' , '||
    127 CASE WHEN sguf_tab(i).PARTYMONEYCNYX  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYCNYX=0 THEN '0' ELSE   '-'||sguf_tab(i).PARTYMONEYCNYX END                              ||' , '||
    128 CASE WHEN sguf_tab(i).PARTYMONEYUSDX  IS NULL THEN 'NULL' WHEN sguf_tab(i).PARTYMONEYUSDX=0 THEN '0'  ELSE   '-'||sguf_tab(i).PARTYMONEYUSDX END                             ||' , '||
    129 CASE WHEN sguf_tab(i).PERCENTX   IS NULL THEN 'NULL' ELSE sguf_tab(i).PERCENTX||'' END                                     ||' , '||
    130 'NULL'                                                        ||' , '||
    131 'NULL'                                                        ||' , '||
    132 chr(39)||sguf_tab(i).REM||chr(39)                           ||' , '||
    133 chr(39)||sguf_tab(i).BONDGP||chr(39)                        ||' , '||
    134 chr(39)||sguf_tab(i).TAXRATE||chr(39)                       ||' , '||
    135 chr(39)||sguf_tab(i).TAXWAY||chr(39)                        ||' , '||
    136 CASE WHEN sguf_tab(i).TAXPRICE    = 0 THEN '0' ELSE   '-'||sguf_tab(i).TAXPRICE   END                               ||' , '||
    137 CASE WHEN sguf_tab(i).TAXPRICECNY   =0 THEN '0' ELSE   '-'||sguf_tab(i).TAXPRICECNY  END                               ||' , '||
    138 CASE WHEN sguf_tab(i).TAXPRICEUSD   =0 THEN '0' ELSE   '-'||sguf_tab(i).TAXPRICEUSD  END                               ||' , '||
    139 CASE WHEN sguf_tab(i).COMPANYFEEPRICE   =0 THEN '0' ELSE   '-'||sguf_tab(i).COMPANYFEEPRICE END                             ||' , '||
    140 CASE WHEN sguf_tab(i).COMPANYFEEPRICECNY   =0 THEN '0' ELSE   '-'||sguf_tab(i).COMPANYFEEPRICECNY END                          ||' , '||
    141 CASE WHEN sguf_tab(i).COMPANYFEEPRICEUSD  =0  THEN '0' ELSE   '-'||sguf_tab(i).COMPANYFEEPRICEUSD END  
    142  ||') ;' ;
    143 
    144 
    145 
    146 END LOOP;
    147  END IF ;
    148  INSERT INTO SGUF_SUM_UNEQUAL_MEMBERFREE(NO,Strsql) VALUES ('BSD20170908000830',v_insert_sql);
    149 --dbms_output.put_line(v_insert_sql);
    150 END ;
    View Code

    2.该脚本为sguf与mian表的数据核对脚本:

     1 SELECT 
     2 sguf.sgufmaxid,
     3 MAINtab.no,
     4 MAINtab.ma_memberid,
     5 MAINtab.BSFLAG,
     6 MAINtab.maFEEPRICE,
     7 sguf.sguffeeprice,
     8 (MAINtab.maFEEPRICE-abs(sguf.sguffeeprice)) AS balanceFreePrice,
     9 MAINtab.maFEEPRICEcny,
    10 sguf.sguffeepricecny,
    11 (MAINtab.maFEEPRICEcny-abs(sguf.sguffeepricecny)) AS balanceFreePricecny,
    12 MAINtab.maFEEPRICEusd,
    13 sguf.sguffeepriceusd,
    14 (MAINtab.maFEEPRICEusd-abs(sguf.sguffeepriceusd)) AS balanceFreePricecusd
    15 FROM (
    16 SELECT M.NO, 'B' AS BSFLAG, m.buyerid AS ma_memberid ,
    17         M.BUYERFEEPRICE maFEEPRICE ,M.BUYERFEEPRICEcny maFEEPRICEcny ,M.BUYERFEEPRICEusd  maFEEPRICEusd
    18             
    19  FROM HIS_PRODUCT_DEAL_MAIN M
    20  WHERE M.STATE = 9
    21  --  AND M.BUYERID = 1216
    22  --  AND M.PRODUCTID = 4 
    23    AND TO_CHAR(M.CREATETIME, 'yyyymmdd') BETWEEN '20171001' AND '20171031'
    24 UNION ALL
    25 SELECT M.NO, 'L' AS BSFLAG,m.sellerid AS ma_memberid,
    26 M.sellerFEEPRICE maFEEPRICE ,M.sellerFEEPRICEcny maFEEPRICEcny ,M.sellerFEEPRICEusd  maFEEPRICEusd
    27   FROM HIS_PRODUCT_DEAL_MAIN M
    28  WHERE M.STATE = 9
    29   -- AND M.SELLERID = 1216
    30  --  AND M.PRODUCTID = 4  
    31 AND  TO_CHAR(M.CREATETIME, 'yyyymmdd') BETWEEN '20171001' AND '20171031'   ) MAINtab ,
    32       (
    33 SELECT MAX(ID) AS sgufmaxid, s.no ,s.side,s.memberid,COUNT(s.no) nocount,
    34 SUM(s.memberfeeprice) sguffeeprice,
    35 SUM(s.memberfeepricecny) sguffeepricecny,
    36 SUM(s.memberfeepriceusd) sguffeepriceusd
    37  FROM SGUF_PRODUCT_DEAL_MAIN S
    38  /* WHERE S.MEMBERID = 1216    AND to_char(s.dealdate,'yyyymmdd')  BETWEEN '20171001' AND     '20171031'*/
    39   GROUP BY s.no,s.side ,s.memberid )  sguf
    40     WHERE MAINtab.no=sguf.no(+) AND 
    41      MAINtab.bsflag=sguf.side(+) AND 
    42      MAINtab.ma_memberid=sguf.memberid(+) AND (
    43      (MAINtab.maFEEPRICE-abs(sguf.sguffeeprice))<>0 OR 
    44      (MAINtab.maFEEPRICEcny-abs(sguf.sguffeepricecny))<>0 OR
    45      (MAINtab.maFEEPRICEusd-abs(sguf.sguffeepriceusd))<>0 )
    View Code

    3.该脚本为修改sguf表中分摊错误的数据

      1 DECLARE 
      2 max_indexvalue INT ;
      3 TYPE typ_rowid_table IS TABLE OF VARCHAR2(100) ;
      4 TYPE TYP_percent_TABLE IS TABLE OF NUMBER ;
      5 TYPE TYP_IndexValue_TABLE IS TABLE OF integer ;
      6 TYPE typ_percent_recode IS record (
      7 v_srNO Varchar2(100),
      8 v_memberfeeprice  number ,
      9 v_memberfeepricecny  number ,
     10 v_memberfeepriceusd  number ,
     11 v_sum_freeprice number ,
     12 v_sum_freepricecny number ,
     13 v_sum_freepriceusd number ,
     14 v_percent1  number ,
     15 v_percent2  number ,
     16 v_percent3  number ,
     17 v_percent4  number ,
     18 v_percent5  number ,
     19 v_percent6  number ,
     20 v_percent7  number ,
     21 v_percent8  number ,
     22 v_percent9  number ,
     23 v_percent10  number 
     24 );
     25 CURSOR sguf_cur IS SELECT sr.row_id FROM sguf_rowid_tab_1  sr /*WHERE sr.row_id='AAA+awAAFAABHs3AAC'*/ ;
     26 --v_rowid VARCHAR2(100) ;
     27 calc_freeprice_sum  NUMBER;
     28 calc_freepricecny_sum  NUMBER;
     29 calc_freepriceusd_sum  NUMBER;
     30 tab_rowid typ_rowid_table ;
     31 REC_PR  typ_percent_recode ;
     32 TAB_INDEX  TYP_IndexValue_TABLE :=  TYP_IndexValue_TABLE(NULL);
     33 TAB_PT        TYP_percent_TABLE := TYP_percent_TABLE(NULL);
     34 v_balance NUMBER  ;
     35 v_balancecny NUMBER ;
     36 v_balanceusd NUMBER ;
     37 str_Fentan_sql VARCHAR2(1000);
     38 Str_sql_Update VARCHAR2(1000);
     39 all_sql VARCHAR2(4000);
     40 
     41 
     42 BEGIN 
     43 
     44 OPEN sguf_cur ;
     45 LOOP 
     46 FETCH sguf_cur BULK COLLECT  INTO tab_rowid ;
     47 EXIT WHEN sguf_cur%NOTFOUND ;
     48 END LOOP ;
     49 
     50 FOR x IN tab_rowid.first .. tab_rowid.last LOOP 
     51 str_Fentan_sql :='';
     52 Str_sql_Update := '';
     53 max_indexvalue :=0 ;
     54 all_sql :='';
     55 v_balance :=0 ;
     56 v_balancecny :=0 ;
     57 v_balanceusd :=0 ;
     58 calc_freeprice_sum :=0 ;
     59 calc_freepricecny_sum :=0 ;
     60 calc_freepriceusd_sum :=0 ;
     61 SELECT S.NO,
     62 S.MEMBERFEEPRICE,
     63 S.MEMBERFEEPRICECNY,
     64 S.MEMBERFEEPRICEUSD,
     65 ABS(NVL(S.PARTYMONEY1, 0) + NVL(S.PARTYMONEY2, 0) +
     66 NVL(S.PARTYMONEY3, 0) + NVL(S.PARTYMONEY4, 0) +
     67 NVL(S.PARTYMONEY5, 0) + NVL(S.PARTYMONEY6, 0) +
     68 NVL(S.PARTYMONEY7, 0) + NVL(S.PARTYMONEY8, 0) +
     69 NVL(S.PARTYMONEY9, 0) + NVL(S.PARTYMONEY10, 0)) AS SUM_FREEPRICE,
     70 ABS(NVL(S.PARTYMONEYCNY1, 0) + NVL(S.PARTYMONEYCNY2, 0) +
     71 NVL(S.PARTYMONEYCNY3, 0) + NVL(S.PARTYMONEYCNY4, 0) +
     72 NVL(S.PARTYMONEYCNY5, 0) + NVL(S.PARTYMONEYCNY6, 0) +
     73 NVL(S.PARTYMONEYCNY7, 0) + NVL(S.PARTYMONEYCNY8, 0) +
     74 NVL(S.PARTYMONEYCNY9, 0) + NVL(S.PARTYMONEYCNY10, 0)) AS SUM_FREEPRICECNY,
     75 ABS(NVL(S.PARTYMONEYUSD1, 0) + NVL(S.PARTYMONEYUSD2, 0) +
     76 NVL(S.PARTYMONEYUSD3, 0) + NVL(S.PARTYMONEYUSD4, 0) +
     77 NVL(S.PARTYMONEYUSD5, 0) + NVL(S.PARTYMONEYUSD6, 0) +
     78 NVL(S.PARTYMONEYUSD7, 0) + NVL(S.PARTYMONEYUSD8, 0) +
     79 NVL(S.PARTYMONEYUSD9, 0) + NVL(S.PARTYMONEYUSD10, 0)) AS SUM_FREEPRICEUSD,
     80 S.PERCENT1,
     81 S.PERCENT2,
     82 S.PERCENT3,
     83 S.PERCENT4,
     84 S.PERCENT5,
     85 S.PERCENT6,
     86 S.PERCENT7,
     87 S.PERCENT8,
     88 S.PERCENT9,
     89 S.PERCENT10
     90 INTO REC_PR
     91  FROM SGUF_ROWID_TAB_1 S
     92 WHERE  s.row_id =tab_rowid(x);
     93 --dbms_output.put_line(tab_rowid(x));
     94 
     95 ------得到总共拆分了几个经纪人,每个经纪人的拆分比例是多少-------------
     96 TAB_PT.delete ;
     97 TAB_PT.extend(10);
     98 TAB_PT(1) := REC_PR.v_percent1;
     99 TAB_PT(2) := REC_PR.v_percent2;
    100 TAB_PT(3) := REC_PR.v_percent3;
    101 TAB_PT(4) := REC_PR.v_percent4;
    102 TAB_PT(5) := REC_PR.v_percent5;
    103 TAB_PT(6) := REC_PR.v_percent6;
    104 TAB_PT(7) := REC_PR.v_percent7;
    105 TAB_PT(8) := REC_PR.v_percent8;
    106 TAB_PT(9) := REC_PR.v_percent9;
    107 TAB_PT(10) := REC_PR.v_percent10;
    108 TAB_INDEX.delete ;
    109 
    110 FOR I IN TAB_PT.first .. TAB_PT.last LOOP
    111  
    112 IF TAB_PT(I) IS  NOT NULL THEN 
    113 TAB_INDEX.extend(1);
    114 TAB_INDEX(TAB_INDEX.last) :=i ;
    115 calc_freeprice_sum :=calc_freeprice_sum+ round(abs(REC_PR.v_memberfeeprice) * TAB_PT(i)/100 ,2) ;
    116 calc_freepricecny_sum := calc_freepricecny_sum+ round(abs(REC_PR.v_memberfeepricecny) * TAB_PT(i)/100 ,2);
    117 calc_freepriceusd_sum := calc_freepriceusd_sum+ round(abs(REC_PR.v_memberfeepriceusd) * TAB_PT(i)/100 ,2);
    118 END IF ;
    119 END LOOP ;
    120 dbms_output.put_line('calc_freeprice_sum='||calc_freeprice_sum);
    121 dbms_output.put_line('calc_freepricecny_sum='||calc_freepricecny_sum);
    122 dbms_output.put_line('calc_freepriceusd_sum='||calc_freepriceusd_sum);
    123 dbms_output.put_line('---------------------------------------------------------------------------');
    124 v_balance := abs(REC_PR.v_memberfeeprice) - calc_freeprice_sum ;
    125 v_balancecny := abs(REC_PR.v_memberfeepricecny) - calc_freepricecny_sum ;
    126 v_balanceusd := abs(REC_PR.v_memberfeepriceusd) - calc_freepriceusd_sum ;
    127 --max_indexvalue 拆了几个经纪人,最大经纪人编号;
    128 max_indexvalue :=TAB_INDEX.last ;
    129 IF REC_PR.v_sum_freeprice<>ABS(REC_PR.v_memberfeeprice)   THEN 
    130 FOR i IN TAB_INDEX.first .. TAB_INDEX.last LOOP 
    131 Str_sql_Update :='UPDATE sguf_rowid_tab_1 s1 '||
    132 'SET s1.partymoney'||TAB_INDEX(i)||'='||ROUND(REC_PR.v_memberfeeprice *TAB_PT(TAB_INDEX(i))/100,2)||
    133  ' WHERE s1.row_id ='||CHR(39)||tab_rowid(x)||CHR(39);
    134 --EXECUTE IMMEDIATE Str_sql_Update ;
    135 all_sql :=all_sql||Str_sql_Update||' ; '||CHR(10);
    136 --dbms_output.put_line('all_sql='||all_sql );
    137 END LOOP ;
    138 --dbms_output.put_line('all_sql='||all_sql );
    139 INSERT INTO SGUF_SUM_UNEQUAL_MEMBERFREE SU
    140 VALUES
    141   (TAB_ROWID(X),
    142    REC_PR.V_SRNO,
    143    ALL_SQL,
    144    V_BALANCE,
    145    REC_PR.V_MEMBERFEEPRICE,
    146    calc_freeprice_sum,
    147      REC_PR.V_MEMBERFEEPRICEcny,
    148    calc_freepricecny_sum,
    149      REC_PR.V_MEMBERFEEPRICEusd,
    150    calc_freepriceusd_sum
    151    );
    152 all_sql :=' ';
    153 END IF ;
    154 
    155 IF REC_PR.v_sum_freepricecny<>ABS(REC_PR.v_memberfeepricecny)   THEN 
    156 FOR i IN TAB_INDEX.first .. TAB_INDEX.last LOOP 
    157 Str_sql_Update :='
    158 UPDATE sguf_rowid_tab_1 s1  set '||
    159 's1.partymoneycny'||TAB_INDEX(i)||'='||round(REC_PR.v_memberfeepricecny *TAB_PT(TAB_INDEX(i))/100,2)||
    160  ' WHERE s1.row_id ='||CHR(39)||tab_rowid(x)||CHR(39);
    161 --EXECUTE IMMEDIATE Str_sql_Update ;
    162 all_sql :=all_sql||Str_sql_Update||' ; '||CHR(10);
    163 
    164 END LOOP ;
    165 INSERT INTO SGUF_SUM_UNEQUAL_MEMBERFREE SU
    166 VALUES
    167   (TAB_ROWID(X),
    168    REC_PR.V_SRNO,
    169    ALL_SQL,
    170    V_BALANCE,
    171    REC_PR.V_MEMBERFEEPRICE,
    172    calc_freeprice_sum,
    173      REC_PR.V_MEMBERFEEPRICEcny,
    174    calc_freepricecny_sum,
    175      REC_PR.V_MEMBERFEEPRICEusd,
    176    calc_freepriceusd_sum
    177    );
    178      all_sql :=' ';
    179 
    180 END IF ;
    181 
    182 IF REC_PR.v_sum_freepriceusd<>ABS(REC_PR.v_memberfeepriceusd)   THEN 
    183 
    184 FOR i IN TAB_INDEX.first .. TAB_INDEX.last LOOP 
    185 Str_sql_Update :='
    186 UPDATE sguf_rowid_tab_1 s1  set '||
    187 's1.partymoneyusd'||TAB_INDEX(i)||'='||round(REC_PR.v_memberfeepriceusd *TAB_PT(TAB_INDEX(i))/100,2)||
    188  ' WHERE s1.row_id ='||CHR(39)||tab_rowid(x)||CHR(39);
    189 --EXECUTE IMMEDIATE Str_sql_Update ;
    190 all_sql :=all_sql||Str_sql_Update||' ; '||CHR(10);
    191 --dbms_output.put_line('all_sql='||all_sql );
    192 END LOOP ;
    193 INSERT INTO SGUF_SUM_UNEQUAL_MEMBERFREE SU
    194 VALUES
    195   (TAB_ROWID(X),
    196    REC_PR.V_SRNO,
    197    ALL_SQL,
    198    V_BALANCE,
    199    REC_PR.V_MEMBERFEEPRICE,
    200    calc_freeprice_sum,
    201      REC_PR.V_MEMBERFEEPRICEcny,
    202    calc_freepricecny_sum,
    203      REC_PR.V_MEMBERFEEPRICEusd,
    204    calc_freepriceusd_sum
    205    );all_sql :=' ';
    206 END IF ;
    207 COMMIT ;
    208 END LOOP ;
    209 END ;
    View Code
  • 相关阅读:
    poj 2674 Linear world
    poj 3185 The Water Bowls
    The Largest Clique (uva11324)
    Proving Equivalences (LA 4287)
    强联通分量( HihoCoder 1185 )
    求点双联通分量(HihoCoder
    求桥,割点(HihoCoder
    欧拉回路
    uva10054
    表达式树(公共表达式消除 uva 12219)
  • 原文地址:https://www.cnblogs.com/linbo3168/p/7851574.html
Copyright © 2011-2022 走看看