WITH GROUPS(CUST_ID, TOT_AMT) AS (SELECT CUST_ID, TOT_AMT FROM ACTIVITY UNION ALL SELECT C.CUST_ID, A.TOT_AMT FROM GROUPS A, CUST_PARP_GRP_BIL B, DFN_GRP_BIL C WHERE A.CUST_ID = B.CUST_ID AND B.GRP_ID = C.GRP_ID) SELECT CUST_ID, SUM(TOT_AMT) AS TOT_AMT FROM GROUPS GROUP BY CUST_ID ORDER BY CUST_ID;