File size: 6,689 Bytes
80e69dc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
WITH
pred_beq AS (
SELECT ROIFAMILYID
FROM UP_16425_1193735
),
account_profile_family AS (
SELECT roi_id,
roi_family_id
FROM v_account_profile_family apf
WHERE EXISTS (
SELECT *
FROM pred_beq pb
WHERE pb.ROIFAMILYID = apf.roi_family_id
)
),
account_profile AS (
SELECT roi_id, -- Added roi_id here to reference it later
account_classification
FROM v_account_profile ap
WHERE EXISTS (
SELECT *
FROM account_profile_family apf
WHERE apf.roi_id = ap.roi_id
)
),
primaryAddresses AS (
SELECT roi_id,
city,
state_code as state,
zipcode
FROM v_account_primary_address
WHERE EXISTS (
SELECT *
FROM account_profile_family apf
WHERE apf.roi_id = v_account_primary_address.roi_id
)
),
flag_universe AS (
SELECT roi_id,
MAX(
CASE
WHEN flagstd_code LIKE 'MD_GROUP%' THEN 'Y'
ELSE 'N'
END
) AS MD_GROUP,
MAX(
CASE
WHEN flagstd_code LIKE 'MD_TFP_HIGH' THEN 'Y'
ELSE 'N'
END
) AS DEV_TFP,
MAX(
CASE
WHEN flagstd_code like 'MLS%' THEN 'Y'
ELSE 'N'
END
) AS MLS,
MAX(
CASE
WHEN flagstd_code like 'REGCOUNCIL%' THEN 'Y'
ELSE 'N'
END
) AS REG_COUNCIL,
MAX(
CASE
WHEN flagstd_code like 'NPROLE_COUNCIL' THEN 'Y'
ELSE 'N'
END
) AS Nat_Council,
MAX(
CASE
WHEN flagstd_code like 'NPROLE_BOARD%' THEN 'Y'
ELSE 'N'
END
) AS Board_or_Emeritus,
MAX(
CASE WHEN flagstd_code like 'SUSTAINER%' THEN 'Y'
ELSE 'N'
END
) AS SUSTAINER,
MAX(
CASE
WHEN flagstd_code like 'SF_%' THEN v_account_flag_active.flagstd_name
ELSE NULL
END
) AS SUPERFUND,
MAX(
CASE
WHEN flagstd_code like 'SF_GROUP5_PLG_PROSP_FY24' THEN v_account_flag_active.flagstd_name
ELSE NULL
END
) AS SUPERFUND_PlannedGift,
MAX(
CASE
WHEN flagstd_code = 'NPROLE_VETCOUNCIL' THEN 'Y'
ELSE 'N'
END
) AS Vet_Council,
MAX(
CASE
WHEN flagstd_code like 'CF_GROUP_%' THEN 'Y'
ELSE 'N'
END
) AS CF_GROUP
FROM v_account_flag_active
WHERE
(
(flagstd_code LIKE 'MD_GROUP%' AND end_date IS NULL)
OR (flagstd_code LIKE 'MD_TFP_HIGH' AND end_date IS NULL)
OR (flagstd_code like 'MLS%' AND end_date IS NULL)
OR (flagstd_code LIKE 'REGCOUNCIL%' AND end_date IS NULL)
OR (flagstd_code LIKE 'NPROLE_COUNCIL' AND end_date IS NULL)
OR (flagstd_code LIKE 'NPROLE_BOARD%' AND end_date IS NULL)
OR (flagstd_code like 'SF_%' AND end_date IS NULL)
OR (flagstd_code = 'NPROLE_VETCOUNCIL' AND end_date IS NULL)
OR flagstd_code LIKE 'CF_GROUP_%' /*Active or inactive CF_GROUP flags*/
)
AND EXISTS (
SELECT *
FROM account_profile_family apf
WHERE apf.roi_id = v_account_flag_active.roi_id
)
GROUP BY roi_id
),
universe AS (
SELECT
flag_universe.roi_id,
flag_universe.MD_GROUP,
flag_universe.DEV_TFP,
flag_universe.MLS,
flag_universe.REG_COUNCIL,
flag_universe.Nat_Council,
flag_universe.Board_or_Emeritus,
flag_universe.Vet_Council,
flag_universe.CF_GROUP,
flag_universe.SUPERFUND,
flag_universe.SUPERFUND_PlannedGift
FROM flag_universe
),
criticalFlags AS (
SELECT roi_id,
MAX(
CASE
WHEN flagstd_code like 'SF_%'
and flagstd_code <> 'SF_GROUP5_PLG_PROSP_FY24' THEN v_account_flag_active.flagstd_name
ELSE NULL
END
) AS SUPERFUND,
MAX(
CASE
WHEN flagstd_code like 'SF_GROUP5_PLG_PROSP_FY24'
and flagstd_code NOT LIKE '%5' THEN v_account_flag_active.flagstd_name
ELSE NULL
END
) AS SUPERFUND_PlannedGift,
MAX(
CASE
WHEN flagstd_code like 'SOLICIT_NO_MAIL' THEN 'Y'
ELSE 'N'
END
) AS SOLICIT_NO_MAIL,
MAX(
CASE
WHEN flagstd_code like 'NO_EMAIL%' THEN 'Y'
ELSE 'N'
END
) AS NO_EMAIL,
MAX(
CASE
WHEN flagstd_code like 'NPROLE_STAFF' THEN 'Y'
ELSE 'N'
END
) AS np_role_staff
FROM v_account_flag_active
WHERE (
flagstd_code LIKE 'SF_%'
OR flagstd_code like 'NO_EMAIL'
OR flagstd_code like 'SOLICIT_NO_MAIL'
OR flagstd_code like 'NPROLE_STAFF'
OR flagstd_code like 'SOLICIT_NO_PHONE'
)
AND EXISTS (
SELECT *
FROM universe
WHERE universe.roi_id = v_account_flag_active.roi_id
)
GROUP BY roi_id
)
SELECT
apf.roi_family_id, -- Include roi_family_id
apf.roi_id, -- Include roi_id
primaryAddresses.city,
primaryAddresses.state,
primaryAddresses.zipcode,
COALESCE(criticalFlags.SOLICIT_NO_MAIL, 'N') AS SOLICIT_NO_MAIL,
COALESCE(criticalFlags.NO_EMAIL, 'N') AS NO_EMAIL,
COALESCE(universe.MD_GROUP, 'N') AS MD_GROUP,
COALESCE(universe.DEV_TFP, 'N') AS DEV_TFP,
COALESCE(universe.MLS, 'N') AS MLS,
COALESCE(universe.REG_COUNCIL, 'N') AS REG_COUNCIL,
COALESCE(universe.Nat_Council, 'N') AS Nat_Council,
COALESCE(universe.Vet_Council, 'N') AS Vet_Council,
COALESCE(universe.CF_GROUP, 'N') AS CF_GROUP,
COALESCE(universe.Board_or_Emeritus, 'N') AS Board_or_Emeritus,
COALESCE(universe.SUPERFUND, criticalFlags.SUPERFUND, NULL) AS SUPERFUND,
COALESCE(universe.SUPERFUND_PlannedGift, criticalFlags.SUPERFUND_PlannedGift, NULL) AS SUPERFUND_PlannedGift,
COALESCE(criticalFlags.np_role_staff, 'N') AS np_role_staff
FROM
account_profile_family apf
JOIN
universe ON apf.roi_id = universe.roi_id
JOIN
primaryAddresses ON apf.roi_id = primaryAddresses.roi_id
LEFT JOIN
criticalFlags ON apf.roi_id = criticalFlags.roi_id |