LOY_AGGR_PT_BAL_V

Details

  • Schema: FUSION

  • Object owner: LOY

  • Object type: VIEW

Columns

Name

PROGRAM_ID

MEMBER_ID

PROMO_ID

ATTRIB_DEFN_ID

PARTNER_ID

PROD_ID

BALANCE

Query

SQL_Statement

SELECT

COALESCE(AI.PROGRAM_ID, RI.PROGRAM_ID) PROGRAM_ID,

COALESCE(AI.MEMBER_ID, RI.MEMBER_ID) MEMBER_ID,

COALESCE(AI.PROMO_ID,RI.PROMO_ID) PROMO_ID,

COALESCE(AI.ATTRIB_DEFN_ID,RI.ATTRB_DEFN_ID) ATTRIB_DEFN_ID,

COALESCE(AI.PARTNER_ID,RI.PARTNER_ID) PARTNER_ID,

COALESCE(AI.PROD_ID,RI.PROD_ID) PROD_ID,

COALESCE(AI.ACCSUM,0) - COALESCE((RI.S),0) Balance

from

(

SELECT MEM.PROGRAM_ID,

A.MEMBER_ID,

A.ATTRIB_DEFN_ID, B.PARTNER_ID, B.PROD_ID, A.PROMO_ID,

COALESCE(SUM(

CASE

WHEN

(A.EXPIRATION_DT >= sysdate or A.EXPIRATION_DT IS NULL)

THEN

A.ACCRUALED_VALUE

ELSE

DECODE(EXPIRED_VALUE, 0, NVL(A.USED_VALUE,0), A.ACCRUALED_VALUE - A.EXPIRED_VALUE)

END

),0) ACCSUM

FROM LOY_ACRL_ITM A

INNER JOIN LOY_MEMBER MEM ON (A.MEMBER_ID = MEM.LOY_MEMBER_ID)

LEFT JOIN LOY_TXN B ON (A.TXN_ID = B.LOY_TXN_ID)

WHERE (A.RET_EFF_DT IS NULL OR A.RET_EFF_DT <= sysdate)

GROUP BY MEM.PROGRAM_ID,A.ATTRIB_DEFN_ID, A.MEMBER_ID, B.PARTNER_ID, B.PROD_ID, A.PROMO_ID

) AI FULL OUTER JOIN

(

select COALESCE(SUM(RDM.VALUE),0) S, MEM.PROGRAM_ID,

RDM.ATTRB_DEFN_ID,

RDM.MEMBER_ID, B.PARTNER_ID, B.PROD_ID, RDM.PROMO_ID

from LOY_RDM_ITM RDM

INNER JOIN LOY_MEMBER MEM ON (RDM.MEMBER_ID = MEM.LOY_MEMBER_ID)

LEFT JOIN LOY_TXN B ON (RDM.TXN_ID = B.LOY_TXN_ID)

where RDM.CREATION_DATE <= sysdate

and RDM.type_code <> 'ORA_POINT_EXP'

group by MEM.PROGRAM_ID, RDM.ATTRB_DEFN_ID, RDM.MEMBER_ID, B.PARTNER_ID, B.PROD_ID, RDM.PROMO_ID

) RI

ON ( AI.PROGRAM_ID = RI.PROGRAM_ID

AND AI.ATTRIB_DEFN_ID = RI.ATTRB_DEFN_ID

AND AI.MEMBER_ID = RI.MEMBER_ID

AND AI.PARTNER_ID = RI.PARTNER_ID

AND AI.PROD_ID = RI.PROD_ID

AND AI.PROMO_ID = RI.PROMO_ID)