Tuesday, July 9, 2013

Merge Command eg

 MERGE INTO LIQUIDITY.REP_STG_PRODUCT_DATA STG USING
          (Select VALID_TO ,PRODUCT FROM LIQUIDITY.REP_PRODUCT_DATA SCD WHERE SCD.VALID_TO > ? AND SCD.VALID_FROM <=?  ) ad
          on STG.PRODUCT =ad.PRODUCT
 WHEN MATCHED
  THEN
  UPDATE SET (STG.PROCESSED,STG.VALID_TO)=('D',ad.VALID_TO)

  ELSE IGNORE;
  --


MERGE INTO LMFR_REPORT.REF_PRODUCT_DATA  R
 USING
          (SELECT    ms.VALUE2 , fp.SK_FP
          FROM LMFR_REPORT.R_REF_FUNDING_POOL fp
                    inner join LIQUIDITY.LIST_MEMBER_SNAPSHOT ms
                    on ms.LIST_ID = 43 and ms.VALUE1 = fp.SECURITY_POOL and ms.DATA_DATE = '2013-01-31'
) ad
       
                 on ad.SK_FP = R.SK_FP   AND R.VALID_FROM <= '2013-01-31'  AND R.VALID_TO > '2013-01-31'
       AND R.FED_CATEGORY != ms.VALUE2
                  AND ((R.FED_CATEGORY = 'A-II' AND VALUE2='A-I')
                  OR R.FED_CATEGORY IN ('B','D'))
                   AND R.PRODUCT_S_P_LT_RATING IS NULL
                   AND R.PRODUCT_MOODY_LT_RATING IS NULL
                   AND R.PRODUCT_S_P_LT_RATING IS NULL
                   AND R.PRODUCT_HIERARCHY_LEVEL_2 in ( 'DO NOT POST', 'Government')
 WHEN MATCHED
  THEN
  UPDATE SET (R.FED_CATEGORY, R.BASEL_CATEGORY)=(AD.VALUE2, CASE WHEN AD.VALUE2= 'A-I' THEN '0% risk - issued by sovereigns'
WHEN AD.VALUE2='A-II' THEN '20% risk - issued by sovereigns' ELSE 'greater 20% risk - issued by sovereigns' END )
ELSE IGNORE;

No comments:

Post a Comment