Hi,
Thanks for your information and patience. I'll try your suggestion first but here is the SQL query I use in case you want to know. All of those {?<variable_name>} are the input parameter I use for the SubReport. The report itself runs perfectly but it's just too annoying the way the user has to provide input parameter several times for each subreport eventhough they all use the same input parameter variables.
SELECT
1 Active_Group,
T.NAME as TPA_Name,G.ID as Group_ID, G.NAME as Group_Name,
pm.pk, pm.id as Plan_Name,
nvl(SUM(DECODE(M.RELATIONSHIP,'1',1)),0) CRDHLD,
nvl(SUM(DECODE(M.RELATIONSHIP,'2',1)),0) SPOUSE,
nvl(SUM(DECODE(M.RELATIONSHIP,'3',1)),0) CHILDS,
nvl(SUM(DECODE(M.RELATIONSHIP,'1',0,'2',0,'3',0,1)),0) OTHER,
nvl(pbmadm.ClaimCnt.get_ClaimCnt(g.id, pm.pk, To_Date('{?Eff_Beg}','mm/dd/yyyy'), To_Date('{?Eff_End}','mm/dd/yyyy')),0) CLAIM_COUNT,
nvl(pbmadm.ClaimCnt.get_GroupPaid(g.id, pm.pk, To_Date('{?Eff_Beg}','mm/dd/yyyy'), To_Date('{?Eff_End}','mm/dd/yyyy')),0) GROUP_PAID,
nvl(pbmadm.ClaimCnt.get_PatPaid(g.id, pm.pk,To_Date('{?Eff_Beg}','mm/dd/yyyy'), To_Date('{?Eff_End}','mm/dd/yyyy')),0) PAT_PAID
FROM
PBMADM.PBM_MEMBER M,
PBMADM.PBM_MEMBER_PLAN MP,
PBMADM.PBM_PLAN_MASTER PM,
PBMADM.PBM_TPA T,
PBMADM.PBM_GROUP G
WHERE
M.PK = MP.MEMBER_PK AND
PM.PK = MP.PLNMST_PK AND
G.ID = M.GROUP_ID AND
G.IS_TEST_USAGE_ONLY = 'N' AND
G.TPA_ID = T.ID AND
MP.EFFECTIVE_BEGIN <= To_Date('{?Eff_End}','mm/dd/yyyy') AND
(MP.EFFECTIVE_END IS NULL OR
MP.EFFECTIVE_END > To_Date('{?Eff_End}','mm/dd/yyyy')) AND
PM.EFFECTIVE_BEGIN <= To_Date('{?Eff_End}','mm/dd/yyyy') AND
(PM.EFFECTIVE_END IS NULL OR
PM.EFFECTIVE_END > To_Date('{?Eff_End}','mm/dd/yyyy'))
GROUP BY
T.NAME,
G.ID, G.NAME,
PM.PK, PM.ID
UNION
SELECT
2 Active_Group,
T.NAME as TPA_Name,G.ID as Group_ID, G.NAME as Group_Name,
pm.pk, pm.id as Plan_Name,
nvl(SUM(DECODE(M.RELATIONSHIP,'1',1)),0) CRDHLD,
nvl(SUM(DECODE(M.RELATIONSHIP,'2',1)),0) SPOUSE,
nvl(SUM(DECODE(M.RELATIONSHIP,'3',1)),0) CHILDS,
nvl(SUM(DECODE(M.RELATIONSHIP,'1',0,'2',0,'3',0,1)),0) OTHER,
nvl(pbmadm.ClaimCnt.get_ClaimCnt(g.id, pm.pk, To_Date('{?Eff_Beg}','mm/dd/yyyy'), To_Date('{?Eff_End}','mm/dd/yyyy')),0) CLAIM_COUNT,
nvl(pbmadm.ClaimCnt.get_GroupPaid(g.id, pm.pk, To_Date('{?Eff_Beg}','mm/dd/yyyy'), To_Date('{?Eff_End}','mm/dd/yyyy')),0) GROUP_PAID,
nvl(pbmadm.ClaimCnt.get_PatPaid(g.id, pm.pk,To_Date('{?Eff_Beg}','mm/dd/yyyy'), To_Date('{?Eff_End}','mm/dd/yyyy')),0) PAT_PAID
FROM
PBMADM.PBM_MEMBER M,
PBMADM.PBM_MEMBER_PLAN MP,
PBMADM.PBM_PLAN_MASTER PM,
PBMADM.PBM_TPA T,
PBMADM.PBM_GROUP G
WHERE
M.PK = MP.MEMBER_PK AND
PM.PK = MP.PLNMST_PK AND
G.ID = M.GROUP_ID AND
G.IS_TEST_USAGE_ONLY = 'N' AND
G.TPA_ID = T.ID AND
MP.EFFECTIVE_BEGIN <= To_Date('{?Eff_End}','mm/dd/yyyy') AND
(MP.EFFECTIVE_END IS NULL OR
MP.EFFECTIVE_END > To_Date('{?Eff_End}','mm/dd/yyyy')) AND
PM.EFFECTIVE_BEGIN <= To_Date('{?Eff_End}','mm/dd/yyyy') AND
PM.EFFECTIVE_END < To_Date('{?Eff_End}','mm/dd/yyyy') AND
EXISTS (SELECT 1
FROM
RPT_PLAN_SUMMARY PS
WHERE
PS.GROUP_ID = G.ID AND
PS.PLNMST_PK = PM.PK AND
PS.MONTH BETWEEN To_Date('{?Eff_Beg}','mm/dd/yyyy') AND
To_Date('{?Eff_End}','mm/dd/yyyy') AND
(PS.CLAIM_COUNT <> 0 OR
PS.PAID_AMOUNT <> 0 OR
PS.PAT_PAID_AMOUNT <> 0))
GROUP BY
T.NAME,
G.ID, G.NAME,
PM.PK, PM.ID