博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

sql

Posted on 2012-02-29 17:07  爱.辉.舞  阅读(143)  评论(0)    收藏  举报

 UPDATE (SELECT /*+ BYPASS_UJVC*/
                 A.YEARNUM,
                 A.PEDATE,
                 A.PAYCODE,
                 A.DELCODE,
                 A.RECADDR,
                 A.NEXTDATE, /*A.RECZIP,*/
                 A.NRETDATE,
                 A.RECTELE,
                 ROUND((b.END_DATE - b.START_DATE) / 365) as BYEARNUM,
                 B.END_DATE as BPEDATE,
                 b.FREQUENCY as bpaysch,
                 b.DELSCH as bdelsch,
                 b.RECADDR as bRECADDR,
                 b.NEXT_DUE_DATE as bNEXTDATE, /*b.RECZIP as bRECZIP,*/
                 b.FIRST_DUE_DATE as bNRETDATE,
                 b.RECTELE as bRECTELE
                  FROM edw_tmp_individual_agmt A, EDW_TMP_MONEY_SCHEDULER B
                 WHERE  A.EXTERNAL_REFERENCE = B.policyno
                   AND A.classcode = B.classcode)
           SET YEARNUM  = BYEARNUM,
               pedate   = bpedate,
               paycode  = trim(bpaysch),
               delcode  = trim(bdelsch),
               RECADDR  = bRECADDR,
               NEXTDATE = bNEXTDATE, /*RECZIP = bRECZIP,*/
               NRETDATE = bNRETDATE;

 
这是表关联更新;
注意有个提示:/*+ BYPASS_UJVC*/ 表示 如果有两条相同的记录,还可以照常执行