init
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
{{
|
||||
config(
|
||||
materialized="incremental",
|
||||
incremental_strategy="merge",
|
||||
unique_key=["asset_fk", "code_type_no_id", "a_valid_from"],
|
||||
incremental_predicates=[
|
||||
"DBT_INTERNAL_DEST.CODE_VALUE <> DBT_INTERNAL_SOURCE.CODE_VALUE"
|
||||
],
|
||||
merge_update_columns=["a_valid_to"],
|
||||
schema="DW_RAR",
|
||||
alias="MU_ASSET_CODE_MAP",
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
post_hook="{{ control_model_end('TRG') }}",
|
||||
tags=["m_DWH_ASSET_CODE_MU_ASSET_CODE_MAP_SF_C2D_EA_ELIGIBLE_ASSET", "A_TASK_HISTORY_TARGET_insert"],
|
||||
)
|
||||
}}
|
||||
{% set sequence_name = source("dw_rar_sequences", "AK_NH_ASSET") %}
|
||||
with
|
||||
lkp_asset_code_type_no as (select * from {{ ref("LKP_ASSET_CODE_TYPE_NO") }}
|
||||
where code_type_id in ('MOODY_PROGRAM_ID', 'ISIN')),
|
||||
sq as (
|
||||
select
|
||||
{{ get_workflow_history_key() }} as a_workflow_history_key,
|
||||
'EADB' as source,
|
||||
-- isin_code_type_no as isin_code_type_no,
|
||||
-- moody_program_id_code_type_no as moody_code_type_no,
|
||||
isin as isin_code_value,
|
||||
moody_code_value as moody_code_value
|
||||
from {{ ref("m_DWH_ASSET_CODE_MU_ASSET_CODE_MAP_SF_C2D_EA_ELIGIBLE_ASSET_SQ") }}
|
||||
)
|
||||
{% if is_incremental() %}
|
||||
,
|
||||
lkp_dw_rar_mu_asset_code_map as (
|
||||
select
|
||||
dw_rar_mu_asset_code_map.code_value as code_value,
|
||||
dw_rar_mu_asset_code_map.source as source,
|
||||
dw_rar_mu_asset_code_map.asset_fk as asset_fk,
|
||||
dw_rar_mu_asset_code_map.code_type_no_id as code_type_no_id
|
||||
from {{ this }} dw_rar_mu_asset_code_map
|
||||
where
|
||||
a_valid_to = to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
|
||||
and code_type_no_id = (
|
||||
select code_type_no
|
||||
from {{ source("dw_ref_main", "ASSET_CODE_TYPE") }}
|
||||
where
|
||||
a_valid_to
|
||||
= to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
|
||||
and code_type_id = 'MOODY_PROGRAM_ID'
|
||||
)
|
||||
),
|
||||
all_assets as (
|
||||
select
|
||||
sq.a_workflow_history_key,
|
||||
sq.isin_code_value,
|
||||
sq.moody_code_value,
|
||||
sq.source,
|
||||
trg.code_value,
|
||||
trg.asset_fk,
|
||||
trg.a_valid_from, -- needed for merge
|
||||
trg.a_valid_to,
|
||||
(
|
||||
select code_type_no
|
||||
from lkp_asset_code_type_no
|
||||
where code_type_id = 'ISIN'
|
||||
) as isin_code_type_no,
|
||||
(
|
||||
select code_type_no
|
||||
from lkp_asset_code_type_no
|
||||
where code_type_id = 'MOODY_PROGRAM_ID'
|
||||
) as moody_code_type_no
|
||||
from sq
|
||||
full outer join
|
||||
(
|
||||
select
|
||||
acm.code_value, acm.asset_fk, acm.a_valid_from, acm.a_valid_to
|
||||
from {{ source("dw_ref_main", "ASSET_CODE_TYPE") }} act, {{ this }} acm
|
||||
where
|
||||
act.code_type_id = 'ISIN'
|
||||
and act.code_type_no = acm.code_type_no_id
|
||||
and acm.a_valid_to = to_date('31.12.9999', 'DD.MM.YYYY')
|
||||
and act.a_valid_to = to_date('31.12.9999', 'DD.MM.YYYY')
|
||||
) trg
|
||||
on sq.isin_code_value = trg.code_value
|
||||
),
|
||||
insert_update as (
|
||||
select
|
||||
all_assets.asset_fk,
|
||||
all_assets.a_workflow_history_key,
|
||||
all_assets.a_valid_from, -- needed for merge
|
||||
all_assets.a_valid_to,
|
||||
all_assets.source,
|
||||
all_assets.isin_code_type_no,
|
||||
all_assets.moody_code_type_no,
|
||||
all_assets.isin_code_value,
|
||||
all_assets.moody_code_value,
|
||||
case
|
||||
when all_assets.asset_fk is null and all_assets.isin_code_value is not null
|
||||
then 'I'
|
||||
when
|
||||
nvl(lkp_dw_rar_mu_asset_code_map.code_value, '>>NULL<<')
|
||||
<> nvl(all_assets.moody_code_value, '>>NULL<<')
|
||||
and lkp_dw_rar_mu_asset_code_map.source <> 'MANU'
|
||||
then 'U'
|
||||
-- when sq.isin like 'AT000B0779%' then 'I' --for tests
|
||||
else 'N'
|
||||
end ins_upd_flag
|
||||
from all_assets
|
||||
left join
|
||||
lkp_dw_rar_mu_asset_code_map
|
||||
on all_assets.asset_fk = lkp_dw_rar_mu_asset_code_map.asset_fk
|
||||
and all_assets.moody_code_type_no
|
||||
= lkp_dw_rar_mu_asset_code_map.code_type_no_id
|
||||
)
|
||||
select
|
||||
-- case when ins_upd_flag = 'I' then nextval else asset_fk end
|
||||
-- asset_fk, --
|
||||
-- <- sequence used in this place is not good idea because a new value is
|
||||
-- generated for every row even thought ins_upd_flag <> 'I'
|
||||
case
|
||||
when ins_upd_flag = 'I'
|
||||
then /* bw_asset_tests_fnc()*/
|
||||
{{ sequence_next_value(sequence_name) }}
|
||||
else asset_fk
|
||||
end asset_fk, -- <- this is a workaround to above
|
||||
code_type_no_id,
|
||||
a_valid_from,
|
||||
a_valid_to,
|
||||
a_workflow_history_key,
|
||||
code_value,
|
||||
source,
|
||||
indep_subprocess_fk
|
||||
from
|
||||
(
|
||||
-- insert for MOODY
|
||||
-- open new row (insert new version of the asset_fk)
|
||||
select
|
||||
asset_fk,
|
||||
moody_code_type_no as code_type_no_id,
|
||||
sysdate as a_valid_from,
|
||||
to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS') as a_valid_to,
|
||||
a_workflow_history_key,
|
||||
moody_code_value as code_value,
|
||||
source,
|
||||
cast(null as number) as indep_subprocess_fk, -- IIF($$Var_m_main_load='Y',null ,setvariable($$Var_m_dwh_subprocess_load_set_key, null))
|
||||
ins_upd_flag
|
||||
from insert_update
|
||||
where
|
||||
ins_upd_flag in ('U', 'I')
|
||||
and nvl(moody_code_value, 'XYZXYZ123123') <> 'XYZXYZ123123'
|
||||
union all
|
||||
-- insert for ISIN
|
||||
select
|
||||
asset_fk,
|
||||
isin_code_type_no as code_type_no_id,
|
||||
sysdate as a_valid_from,
|
||||
to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS') as a_valid_to,
|
||||
a_workflow_history_key,
|
||||
isin_code_value as code_value,
|
||||
source,
|
||||
cast(null as number), -- IIF($$Var_m_main_load='Y',null ,setvariable($$Var_m_dwh_subprocess_load_set_key, null))
|
||||
ins_upd_flag
|
||||
from insert_update
|
||||
where
|
||||
ins_upd_flag = 'I'
|
||||
and nvl(moody_code_value, 'XYZXYZ123123') <> 'XYZXYZ123123'
|
||||
union all
|
||||
-- close old version of the row meaning update
|
||||
select
|
||||
asset_fk,
|
||||
moody_code_type_no,
|
||||
a_valid_from,
|
||||
sysdate a_valid_to,
|
||||
a_workflow_history_key,
|
||||
moody_code_value as code_value,
|
||||
source,
|
||||
cast(null as number) as indep_subprocess_fk,
|
||||
ins_upd_flag
|
||||
from insert_update
|
||||
where ins_upd_flag = 'U'
|
||||
)
|
||||
-- below part is used only if model is executed 1st time and target table doesn't exist
|
||||
{% else %}
|
||||
-- initial insert for MOODY
|
||||
select
|
||||
{{ sequence_next_value(sequence_name) }} as asset_fk,
|
||||
(
|
||||
select code_type_no
|
||||
from lkp_asset_code_type_no
|
||||
where code_type_id = 'MOODY_PROGRAM_ID'
|
||||
) as code_type_no_id,
|
||||
sysdate as a_valid_from,
|
||||
to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS') as a_valid_to,
|
||||
a_workflow_history_key,
|
||||
moody_code_value as code_value,
|
||||
source,
|
||||
cast(null as number) as indep_subprocess_fk -- IIF($$Var_m_main_load='Y',null ,setvariable($$Var_m_dwh_subprocess_load_set_key, null))
|
||||
from sq
|
||||
where nvl(moody_code_value, 'XYZXYZ123123') <> 'XYZXYZ123123'
|
||||
union all
|
||||
-- initial insert for ISIN
|
||||
select
|
||||
{{ sequence_next_value(sequence_name) }} as asset_fk,
|
||||
(
|
||||
select code_type_no from lkp_asset_code_type_no where code_type_id = 'ISIN'
|
||||
) as code_type_no_id,
|
||||
sysdate as a_valid_from,
|
||||
to_date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS') as a_valid_to,
|
||||
a_workflow_history_key,
|
||||
isin_code_value as code_value,
|
||||
source,
|
||||
cast(null as number) as indep_subprocess_fk -- IIF($$Var_m_main_load='Y',null ,setvariable($$Var_m_dwh_subprocess_load_set_key, null))
|
||||
from sq
|
||||
where nvl(moody_code_value, 'XYZXYZ123123') <> 'XYZXYZ123123'
|
||||
{% endif %}
|
||||
173
dbt/models/rar/targets/m_DWH_ASSET_NH_ASSET_TE_ASSET_LOAD.sql
Normal file
173
dbt/models/rar/targets/m_DWH_ASSET_NH_ASSET_TE_ASSET_LOAD.sql
Normal file
@@ -0,0 +1,173 @@
|
||||
-- This model creates table DW_RAR.NH_ASSET_TEST.
|
||||
-- The model is a part of the mapping m_DWH_ASSET_NH_ASSET_TE_ASSET_LOAD.
|
||||
-- Pre-/post-hook log data into the control tables.
|
||||
{{ config(materialized='table',
|
||||
alias = 'NH_ASSET_TEST',
|
||||
tags = ['m_DWH_ASSET_NH_ASSET_TE_ASSET_LOAD_post_snapshot', 'A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
post_hook="{{ control_model_end('TRG') }}",
|
||||
schema = 'DW_RAR') }}
|
||||
|
||||
-- Select all the columns from snapshot.
|
||||
-- Rename the dbt default historisation columns to the names used in the current setup.
|
||||
|
||||
SELECT SS.ASSET_KEY,
|
||||
SS.IS_SECURED,
|
||||
SS.CLASSIFICATION,
|
||||
SS.IS_EXTENDIBLE,
|
||||
SS.EA_IS_EMERGENCY_COLLATERAL,
|
||||
SS.TMS_GROUP_PATH,
|
||||
SS.TMS_GROUP_PATH_NAME,
|
||||
SS.ISSUE_DATE,
|
||||
SS.MATURITY_LAST_REDEMPTION_DATE,
|
||||
SS.TMS_ACTIVE_SINCE,
|
||||
SS.TMS_ACTIVE_UNTIL,
|
||||
SS.CURRENCY,
|
||||
SS.CURRENCY_2,
|
||||
SS.INTEREST_RATE,
|
||||
SS.TMS_TYPE,
|
||||
SS.PERIOD_ID,
|
||||
SS.PRICING_TYPE,
|
||||
SS.ASSET_BBG_NAME,
|
||||
SS.BBG_BM_IDX,
|
||||
SS.BBG_FLT_BM_MULTIPLIER,
|
||||
SS.BBG_COLLAT_TYPE,
|
||||
SS.BBG_MARKET_ISSUE,
|
||||
SS.BBG_MATURITY_TYPE,
|
||||
SS.COUPON_TYPE,
|
||||
SS.POOL_FACTOR,
|
||||
SS.BBG_FLT_SPREAD,
|
||||
SS.CSDB_REDEMPTION_TYPE,
|
||||
SS.CSDB_REDEMPTION_FREQ,
|
||||
SS.CSDB_REDEMPTION_PRICE,
|
||||
SS.CSDB_ISSUE_PRICE,
|
||||
SS.CSDB_STATUS,
|
||||
SS.UOC_INTEREST_PAYMENT_TYPE,
|
||||
SS.EA_CSD,
|
||||
SS.C2D_ASSET_TYPE,
|
||||
SS.EA_COUPON_TYPE,
|
||||
SS.EA_REF_MARKET,
|
||||
SS.EA_CRD_OR_EQUIV,
|
||||
SS.EA_IS_ABS_LLD,
|
||||
SS.EA_IS_ABS_LLD_DATE,
|
||||
SS.EA_ABS_SURVEIL_DATE,
|
||||
SS.EA_ABS_TYPE,
|
||||
SS.EA_CEPH_IS_INFLAT,
|
||||
SS.EA_CEPH_IS_CALL_PUT,
|
||||
SS.EA_CEPH_IS_SINKABLE,
|
||||
SS.EA_CEPH_COMMENT,
|
||||
SS.EA_IS_OUTRIGHT_PURCHASE,
|
||||
SS.EA_LIQ_CLASS,
|
||||
SS.EA_DENOMINATION,
|
||||
SS.EA_NAME,
|
||||
SS.EA_VALIDATION_STATUS,
|
||||
SS.EA_NCB_COMMENT,
|
||||
SS.EA_ISSUANCE_DATE,
|
||||
SS.C2D_MATURITY_DATE,
|
||||
SS.MATURITY_DATE,
|
||||
SS.UOC_BUCKET_SIZE,
|
||||
SS.IS_ELIGIBLE_VIA_GUARANTOR,
|
||||
SS.UOC_RESIDUAL_MATURITY,
|
||||
SS.EA_SENDER_CODE,
|
||||
SS.EA_NON_OWN_USE_HAIRCUT,
|
||||
SS.ACCOUNTING_TYPE,
|
||||
SS.GROUPING_VALUE,
|
||||
SS.SPREAD_TYPE,
|
||||
SS.TMS_ELIGIBILITY_TYPE,
|
||||
SS.REF_AMOUNT_BUCKET,
|
||||
SS.ISSUANCE_TYPE,
|
||||
SS.BRANCH6_ID,
|
||||
SS.BRANCH7_ID,
|
||||
SS.BRANCH8_ID,
|
||||
SS.BRANCH9_ID,
|
||||
SS.TMS_NAME,
|
||||
SS.CSDB_CSD,
|
||||
SS.CSDB_SECURITISATION_TYPE,
|
||||
SS.CFI_CLASSIFICATION,
|
||||
SS.INSTRUMENT_ESA_95_CLASS,
|
||||
SS.INSTR_ESA_95_CLASS_VAL_TYPE,
|
||||
SS.INSTRUMENT_ESA_2010_CLASS,
|
||||
SS.REDEMPTION_CURRENCY,
|
||||
SS.CSDB_SUPPL_INFO,
|
||||
SS.CAP,
|
||||
SS.REFERENCERATE,
|
||||
SS.REFERENCERATECOMMENT,
|
||||
SS.BBG_FLOATER,
|
||||
SS.BBG_INDUSTRY_GROUP,
|
||||
SS.CSDB_ESG1,
|
||||
SS.CSDB_ESG2,
|
||||
SS.CSDB_ESG3,
|
||||
SS.REU_SECURITY_DESCRIPTION,
|
||||
SS.REU_ASSET_CATEGORY,
|
||||
SS.REU_ASSET_CATEGORY_DESCRIPTION,
|
||||
SS.REU_ASSET_TYPE,
|
||||
SS.REU_ASSET_TYPE_DESCRIPTION,
|
||||
SS.REU_ASSET_SUBTYPE,
|
||||
SS.REU_ASSET_SUBTYPE_DESCRIPTION,
|
||||
SS.REU_ISO_CURRENCY,
|
||||
SS.BBG_DES_NOTES,
|
||||
SS.BBG_INDUSTRY_SUBGROUP,
|
||||
SS.BBG_SECURITY_TYP,
|
||||
SS.BBG_SECURITY_TYP2,
|
||||
SS.UOC_RESET_PERIOD_MORE_ONE_YEAR,
|
||||
SS.EA_EXTENSION_OPTION_EXERCISED,
|
||||
SS.EA_EFFECTIVE_MATURITY_DATE,
|
||||
SS.EA_COVERED_BOND_OU,
|
||||
SS.EA_OWN_USE_HAIRCUT,
|
||||
SS.EA_CQS,
|
||||
SS.EA_EXTENDIBLE,
|
||||
SS.EA_EXTENSION_TRIGGER,
|
||||
SS.EA_EXTENDED_MATURITY_DATE,
|
||||
SS.EA_ABS_PUBL_SURVEIL_DATE2,
|
||||
SS.BBG_TICKER,
|
||||
SS.BBG_STRIP_TYPE,
|
||||
SS.BBG_EXCHANGE_CODE,
|
||||
SS.BBG_PRVT_PLACE,
|
||||
SS.BBG_PUTABLE,
|
||||
SS.BBG_ISSUER_INDUSTRY,
|
||||
SS.BBG_INFLATION_LINKED_INDICATOR,
|
||||
SS.CSDB_IS_PRIVATE_PLACEMENT,
|
||||
SS.CLASSIFICATION_C2D,
|
||||
SS.CLASSIFICATION_TMS,
|
||||
SS.ISSUE_DATE_TMS,
|
||||
SS.ISSUE_DATE_CSDB,
|
||||
SS.CURRENCY_TMS,
|
||||
SS.CURRENCY_MDP,
|
||||
SS.CURRENCY_CSDB,
|
||||
SS.COUPON_TYPE_MDP,
|
||||
SS.COUPON_TYPE_CSDB,
|
||||
SS.POOL_FACTOR_CEPH,
|
||||
SS.POOL_FACTOR_CSDB,
|
||||
SS.MATURITY_DATE_TMS,
|
||||
SS.MATURITY_DATE_MDP,
|
||||
SS.CP_PROGRAMME,
|
||||
SS.C2D_ELA_ABS_TYPE,
|
||||
SS.C2D_EA_ABS_TYPE,
|
||||
SS.C2D_EA_MATURITY_DATE,
|
||||
SS.C2D_UC_MATURITY_DATE,
|
||||
SS.C2D_UC_ASSET_TYPE,
|
||||
SS.C2D_EA_ASSET_TYPE,
|
||||
SS.C2D_ELA_ASSET_TYPE,
|
||||
SS.C2D_UC_DENOMINATION,
|
||||
SS.C2D_EA_DENOMINATION,
|
||||
SS.C2D_UC_OA_ID,
|
||||
SS.C2D_UC_CONTRACT_ID,
|
||||
SS.C2D_UC_INSTRMNT_ID,
|
||||
SS.MDP_CMA_DEFAULTED_DATE,
|
||||
SS.MDP_CMA_DEFAULTED_STANDARD,
|
||||
SS.MDP_CMA_QUOTE_CONVENTION,
|
||||
SS.MDP_CMA_RESTRUCTURING_TYPE,
|
||||
SS.MDP_CMA_MATURITY_DATE,
|
||||
SS.MDP_CMA_TENOR,
|
||||
SS.MDP_CMA_SENIORITY,
|
||||
SS.MDP_CMA_INSTRUMENT_TYPE,
|
||||
SS.MDP_CMA_CURRENCY,
|
||||
SS.C2D_EA_REFERENCE_RATE,
|
||||
SS.C2D_EA_GREEN_SUSTAINABLE,
|
||||
SS.TMS_FUTURES_MATURITY_BUCKET,
|
||||
SS.BBG_MTY_YEARS_TDY,
|
||||
dbt_valid_to AS TO_DATE,
|
||||
FROM_DATE,
|
||||
dbt_valid_from AS A_INSERTION_DATE,
|
||||
dbt_valid_to AS A_CORRECTION_DATE
|
||||
FROM {{ ref("NH_ASSET_snapshot") }} SS
|
||||
@@ -0,0 +1,703 @@
|
||||
-- This model incrementally updates the target table DW_TMP.TE_ASSET_test by adding new rows and updating the already existing ones.
|
||||
-- Wether the row is new or existing one is determined by ASSET_KEY column.
|
||||
-- The model is a part of the mapping m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD.
|
||||
-- Pre-/post-hook log data into the control tables.
|
||||
-- A_TASK_HISTORY_TARGET_insert tag ensures logging of the target table data into the control tables.
|
||||
{{ config(materialized='incremental',
|
||||
incremental_strategy='merge',
|
||||
unique_key='ASSET_KEY',
|
||||
tags = ['m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD', 'A_TASK_HISTORY_TARGET_insert'],
|
||||
schema='DW_TMP',
|
||||
alias = 'TE_ASSET_test',
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
post_hook="{{ control_model_end('TRG') }}",
|
||||
merge_update_columns=['ASSET_KEY',
|
||||
'CLASSIFICATION',
|
||||
'EA_IS_EMERGENCY_COLLATERAL',
|
||||
'C2D_ASSET_TYPE',
|
||||
'EA_CSD',
|
||||
'EA_COUPON_TYPE',
|
||||
'EA_REF_MARKET',
|
||||
'EA_CRD_OR_EQUIV',
|
||||
'EA_IS_ABS_LLD',
|
||||
'EA_IS_ABS_LLD_DATE',
|
||||
'EA_ABS_SURVEIL_DATE',
|
||||
'EA_ABS_TYPE',
|
||||
'EA_CEPH_IS_INFLAT',
|
||||
'EA_CEPH_IS_CALL_PUT',
|
||||
'EA_CEPH_IS_SINKABLE',
|
||||
'EA_CEPH_COMMENT',
|
||||
'EA_IS_OUTRIGHT_PURCHASE',
|
||||
'EA_LIQ_CLASS',
|
||||
'EA_DENOMINATION',
|
||||
'EA_NCB_COMMENT',
|
||||
'EA_NAME',
|
||||
'EA_VALIDATION_STATUS',
|
||||
'EA_ISSUANCE_DATE',
|
||||
'C2D_MATURITY_DATE',
|
||||
'EA_SENDER_CODE',
|
||||
'EA_NON_OWN_USE_HAIRCUT',
|
||||
'EA_EXTENSION_OPTION_EXERCISED',
|
||||
'EA_EFFECTIVE_MATURITY_DATE',
|
||||
'EA_COVERED_BOND_OU',
|
||||
'EA_OWN_USE_HAIRCUT',
|
||||
'EA_CQS',
|
||||
'EA_EXTENDIBLE',
|
||||
'EA_EXTENSION_TRIGGER',
|
||||
'EA_EXTENDED_MATURITY_DATE',
|
||||
'EA_ABS_PUBL_SURVEIL_DATE2',
|
||||
'CLASSIFICATION_C2D',
|
||||
'C2D_EA_ABS_TYPE',
|
||||
'C2D_EA_MATURITY_DATE',
|
||||
'C2D_EA_ASSET_TYPE',
|
||||
'C2D_EA_DENOMINATION',
|
||||
'CURRENCY',
|
||||
'C2D_EA_REFERENCE_RATE',
|
||||
'C2D_EA_GREEN_SUSTAINABLE']
|
||||
) }}
|
||||
|
||||
|
||||
-- Set sequence_name: to be used for the generation of the next sequence value.
|
||||
{% set sequence_name = source("dw_rar_sequences", "AK_NH_ASSET") %}
|
||||
|
||||
-- Select data from Source Qualifier
|
||||
-- Implement the GET_ASSET_CODE_MAP_CACHE lookup:
|
||||
-- - join with DW_REF_MAIN.ASSET_CODE_TYPE
|
||||
-- - join with DW_RAR.MU_ASSET_CODE_MAP
|
||||
-- - get the lookup ASSET_FK for the corresponding ISIN
|
||||
-- Perform some data transformation
|
||||
-- Filter data: keep rows where ASSET_FK is not null
|
||||
WITH PASS_THROUGH AS (
|
||||
SELECT CASE
|
||||
WHEN DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL THEN DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK
|
||||
ELSE NULL
|
||||
END AS ASSET_FK,
|
||||
'Marketable' AS CLASSIFICATION,
|
||||
CASE
|
||||
WHEN EMERGENCY_COLLATERAL IS NOT NULL THEN
|
||||
CASE
|
||||
WHEN REGEXP_LIKE(EMERGENCY_COLLATERAL,'^[0-9]+$') THEN
|
||||
CASE
|
||||
WHEN TO_NUMBER(EMERGENCY_COLLATERAL)=0 THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
ELSE
|
||||
CASE
|
||||
WHEN UPPER(EMERGENCY_COLLATERAL) IN ('N','NO','') THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
END
|
||||
END AS EMERGENCY_COLLATERAL,
|
||||
COUNTRY_OF_LOCATION,
|
||||
ASSET_TYPE,
|
||||
COUPON_DEFINITION,
|
||||
REFERENCE_MARKET,
|
||||
CRD_OR_EQUIVALENT,
|
||||
CASE
|
||||
WHEN LOAN_LEVEL_DATA IS NOT NULL THEN
|
||||
CASE
|
||||
WHEN REGEXP_LIKE(LOAN_LEVEL_DATA,'^[0-9]+$') THEN
|
||||
CASE
|
||||
WHEN TO_NUMBER(LOAN_LEVEL_DATA)=0 THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
ELSE
|
||||
CASE
|
||||
WHEN UPPER(LOAN_LEVEL_DATA) IN ('N','NO','') THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
END
|
||||
END AS LOAN_LEVEL_DATA,
|
||||
LOAN_LEVEL_DATA_LAST_DATE,
|
||||
ABS_PUBL_LAST_SURVEILLANCE,
|
||||
ABS_TYPE,
|
||||
CASE
|
||||
WHEN CEPH_INFLATION_LINKED IS NOT NULL THEN
|
||||
CASE
|
||||
WHEN REGEXP_LIKE(CEPH_INFLATION_LINKED,'^[0-9]+$') THEN
|
||||
CASE
|
||||
WHEN TO_NUMBER(CEPH_INFLATION_LINKED)=0 THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
ELSE
|
||||
CASE
|
||||
WHEN UPPER(CEPH_INFLATION_LINKED) IN ('N','NO','') THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
END
|
||||
END AS CEPH_INFLATION_LINKED,
|
||||
CEPH_CALLABLE_PUTABLE,
|
||||
CASE
|
||||
WHEN CEPH_SINKABLE IS NOT NULL THEN
|
||||
CASE
|
||||
WHEN REGEXP_LIKE(CEPH_SINKABLE,'^[0-9]+$') THEN
|
||||
CASE
|
||||
WHEN TO_NUMBER(CEPH_SINKABLE)=0 THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
ELSE
|
||||
CASE
|
||||
WHEN UPPER(CEPH_SINKABLE) IN ('N','NO','') THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
END
|
||||
END AS CEPH_SINKABLE,
|
||||
CEPH_COMMENT,
|
||||
CASE
|
||||
WHEN OUTRIGHT_PURCHASE IS NOT NULL THEN
|
||||
CASE
|
||||
WHEN REGEXP_LIKE(OUTRIGHT_PURCHASE,'^[0-9]+$') THEN
|
||||
CASE
|
||||
WHEN TO_NUMBER(OUTRIGHT_PURCHASE)=0 THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
ELSE
|
||||
CASE
|
||||
WHEN UPPER(OUTRIGHT_PURCHASE) IN ('N','NO','') THEN 'N'
|
||||
ELSE 'Y'
|
||||
END
|
||||
END
|
||||
END AS OUTRIGHT_PURCHASE,
|
||||
LIQUIDITY_CLASS,
|
||||
DENOMINATION,
|
||||
ASSET_NAME,
|
||||
VALIDATION_STATUS,
|
||||
NCB_COMMENT,
|
||||
ISSUANCE_DATE,
|
||||
MATURITY_DATE,
|
||||
SENDER_CODE,
|
||||
ABS_PUBL_LAST_SURVEILLANCE2,
|
||||
COVERED_BOND_OWN_USE,
|
||||
CREDIT_QUALITY_RANK,
|
||||
EXTENDED_MATURITY_DATE,
|
||||
EXTENDIBLE,
|
||||
EXTENSION_OPTION_EXERCISED,
|
||||
EXTENSION_TRIGGER,
|
||||
NON_OWN_USE_HAIRCUT,
|
||||
OWN_USE_HAIRCUT,
|
||||
EA_EFFECTIVE_MATURITY_DATE,
|
||||
REFERENCE_RATE,
|
||||
GREEN_SUSTAINABLE,
|
||||
ROW_NUMBER() OVER (PARTITION BY ASSET_FK ORDER BY ASSET_FK) AS rn
|
||||
FROM {{ ref("m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD_TE_ASSET_SQ") }} SQ
|
||||
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
|
||||
FROM DW_REF_MAIN.ASSET_CODE_TYPE
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_ASSET_CODE_TYPE
|
||||
ON DW_REF_ASSET_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(SQ.ISIN_CODE_TYPE)))
|
||||
LEFT JOIN (SELECT ASSET_FK , CODE_TYPE_NO_ID, CODE_VALUE
|
||||
FROM DW_RAR.MU_ASSET_CODE_MAP
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_ASSET_CODE_MAP
|
||||
ON DW_RAR_MU_ASSET_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_ASSET_CODE_TYPE.CODE_TYPE_NO
|
||||
AND DW_RAR_MU_ASSET_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(SQ.ISIN_CODE_VALUE))
|
||||
WHERE DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL
|
||||
),
|
||||
|
||||
-- Select data from the previous subquery.
|
||||
-- Join with the target table DW_TMP.TE_ASSET_test.
|
||||
-- Update information in columns based on the current target table data and the incoming values.
|
||||
-- Remove duplicate rows.
|
||||
CHECK_GET_ASSET_KEY AS (
|
||||
SELECT inp.ASSET_FK,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.EMERGENCY_COLLATERAL
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_IS_EMERGENCY_COLLATERAL IS NOT NULL THEN lkp.EA_IS_EMERGENCY_COLLATERAL
|
||||
ELSE inp.EMERGENCY_COLLATERAL
|
||||
END
|
||||
END AS CLASSIFICATION,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.EMERGENCY_COLLATERAL
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_IS_EMERGENCY_COLLATERAL IS NOT NULL THEN lkp.EA_IS_EMERGENCY_COLLATERAL
|
||||
ELSE inp.EMERGENCY_COLLATERAL
|
||||
END
|
||||
END AS EA_IS_EMERGENCY_COLLATERAL,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.ASSET_TYPE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.C2D_ASSET_TYPE IS NOT NULL THEN lkp.C2D_ASSET_TYPE
|
||||
ELSE inp.ASSET_TYPE
|
||||
END
|
||||
END AS C2D_ASSET_TYPE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.COUNTRY_OF_LOCATION
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_CSD IS NOT NULL THEN lkp.EA_CSD
|
||||
ELSE inp.COUNTRY_OF_LOCATION
|
||||
END
|
||||
END AS EA_CSD,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.COUPON_DEFINITION
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_COUPON_TYPE IS NOT NULL THEN lkp.EA_COUPON_TYPE
|
||||
ELSE inp.COUPON_DEFINITION
|
||||
END
|
||||
END AS EA_COUPON_TYPE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.REFERENCE_MARKET
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_REF_MARKET IS NOT NULL THEN lkp.EA_REF_MARKET
|
||||
ELSE inp.REFERENCE_MARKET
|
||||
END
|
||||
END AS EA_REF_MARKET,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.CRD_OR_EQUIVALENT
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_CRD_OR_EQUIV IS NOT NULL THEN lkp.EA_CRD_OR_EQUIV
|
||||
ELSE inp.CRD_OR_EQUIVALENT
|
||||
END
|
||||
END AS EA_CRD_OR_EQUIV,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.LOAN_LEVEL_DATA
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_IS_ABS_LLD IS NOT NULL THEN lkp.EA_IS_ABS_LLD
|
||||
ELSE inp.LOAN_LEVEL_DATA
|
||||
END
|
||||
END AS EA_IS_ABS_LLD,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.LOAN_LEVEL_DATA_LAST_DATE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_IS_ABS_LLD_DATE IS NOT NULL THEN lkp.EA_IS_ABS_LLD_DATE
|
||||
ELSE inp.LOAN_LEVEL_DATA_LAST_DATE
|
||||
END
|
||||
END AS EA_IS_ABS_LLD_DATE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.ABS_PUBL_LAST_SURVEILLANCE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_ABS_SURVEIL_DATE IS NOT NULL THEN lkp.EA_ABS_SURVEIL_DATE
|
||||
ELSE inp.ABS_PUBL_LAST_SURVEILLANCE
|
||||
END
|
||||
END AS EA_ABS_SURVEIL_DATE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.ABS_TYPE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_ABS_TYPE IS NOT NULL THEN lkp.EA_ABS_TYPE
|
||||
ELSE inp.ABS_TYPE
|
||||
END
|
||||
END AS EA_ABS_TYPE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.CEPH_INFLATION_LINKED
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_CEPH_IS_INFLAT IS NOT NULL THEN lkp.EA_CEPH_IS_INFLAT
|
||||
ELSE inp.CEPH_INFLATION_LINKED
|
||||
END
|
||||
END AS EA_CEPH_IS_INFLAT,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.CEPH_CALLABLE_PUTABLE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_CEPH_IS_CALL_PUT IS NOT NULL THEN lkp.EA_CEPH_IS_CALL_PUT
|
||||
ELSE inp.CEPH_CALLABLE_PUTABLE
|
||||
END
|
||||
END AS EA_CEPH_IS_CALL_PUT,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.CEPH_SINKABLE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_CEPH_IS_SINKABLE IS NOT NULL THEN lkp.EA_CEPH_IS_SINKABLE
|
||||
ELSE inp.CEPH_SINKABLE
|
||||
END
|
||||
END AS EA_CEPH_IS_SINKABLE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.CEPH_COMMENT
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_CEPH_COMMENT IS NOT NULL THEN lkp.EA_CEPH_COMMENT
|
||||
ELSE inp.CEPH_COMMENT
|
||||
END
|
||||
END AS EA_CEPH_COMMENT,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.OUTRIGHT_PURCHASE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_IS_OUTRIGHT_PURCHASE IS NOT NULL THEN lkp.EA_IS_OUTRIGHT_PURCHASE
|
||||
ELSE inp.OUTRIGHT_PURCHASE
|
||||
END
|
||||
END AS EA_IS_OUTRIGHT_PURCHASE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.LIQUIDITY_CLASS
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_LIQ_CLASS IS NOT NULL THEN lkp.EA_LIQ_CLASS
|
||||
ELSE inp.LIQUIDITY_CLASS
|
||||
END
|
||||
END AS EA_LIQ_CLASS,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.DENOMINATION
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_DENOMINATION IS NOT NULL THEN lkp.EA_DENOMINATION
|
||||
ELSE inp.DENOMINATION
|
||||
END
|
||||
END AS EA_DENOMINATION,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.NCB_COMMENT
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_NCB_COMMENT IS NOT NULL THEN lkp.EA_NCB_COMMENT
|
||||
ELSE inp.NCB_COMMENT
|
||||
END
|
||||
END AS EA_NCB_COMMENT,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.ASSET_NAME
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_NAME IS NOT NULL THEN lkp.EA_NAME
|
||||
ELSE inp.ASSET_NAME
|
||||
END
|
||||
END AS EA_NAME,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.VALIDATION_STATUS
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_VALIDATION_STATUS IS NOT NULL THEN lkp.EA_VALIDATION_STATUS
|
||||
ELSE inp.VALIDATION_STATUS
|
||||
END
|
||||
END AS EA_VALIDATION_STATUS,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.ISSUANCE_DATE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_ISSUANCE_DATE IS NOT NULL THEN lkp.EA_ISSUANCE_DATE
|
||||
ELSE inp.ISSUANCE_DATE
|
||||
END
|
||||
END AS EA_ISSUANCE_DATE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.MATURITY_DATE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.C2D_MATURITY_DATE IS NOT NULL THEN lkp.C2D_MATURITY_DATE
|
||||
ELSE inp.MATURITY_DATE
|
||||
END
|
||||
END AS C2D_MATURITY_DATE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.SENDER_CODE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_SENDER_CODE IS NOT NULL THEN lkp.EA_SENDER_CODE
|
||||
ELSE inp.SENDER_CODE
|
||||
END
|
||||
END AS EA_SENDER_CODE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.NON_OWN_USE_HAIRCUT
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_NON_OWN_USE_HAIRCUT IS NOT NULL THEN lkp.EA_NON_OWN_USE_HAIRCUT
|
||||
ELSE inp.NON_OWN_USE_HAIRCUT
|
||||
END
|
||||
END AS EA_NON_OWN_USE_HAIRCUT,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.EXTENSION_OPTION_EXERCISED
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_EXTENSION_OPTION_EXERCISED IS NOT NULL THEN lkp.EA_EXTENSION_OPTION_EXERCISED
|
||||
ELSE inp.EXTENSION_OPTION_EXERCISED
|
||||
END
|
||||
END AS EA_EXTENSION_OPTION_EXERCISED,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.EA_EFFECTIVE_MATURITY_DATE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_EFFECTIVE_MATURITY_DATE IS NOT NULL THEN lkp.EA_EFFECTIVE_MATURITY_DATE
|
||||
ELSE inp.EA_EFFECTIVE_MATURITY_DATE
|
||||
END
|
||||
END AS EA_EFFECTIVE_MATURITY_DATE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.COVERED_BOND_OWN_USE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_COVERED_BOND_OU IS NOT NULL THEN lkp.EA_COVERED_BOND_OU
|
||||
ELSE inp.COVERED_BOND_OWN_USE
|
||||
END
|
||||
END AS EA_COVERED_BOND_OU,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.OWN_USE_HAIRCUT
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_OWN_USE_HAIRCUT IS NOT NULL THEN lkp.EA_OWN_USE_HAIRCUT
|
||||
ELSE inp.OWN_USE_HAIRCUT
|
||||
END
|
||||
END AS EA_OWN_USE_HAIRCUT,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.CREDIT_QUALITY_RANK
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_CQS IS NOT NULL THEN lkp.EA_CQS
|
||||
ELSE inp.CREDIT_QUALITY_RANK
|
||||
END
|
||||
END AS EA_CQS,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.EXTENDIBLE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_EXTENDIBLE IS NOT NULL THEN lkp.EA_EXTENDIBLE
|
||||
ELSE inp.EXTENDIBLE
|
||||
END
|
||||
END AS EA_EXTENDIBLE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.EXTENSION_TRIGGER
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_EXTENSION_TRIGGER IS NOT NULL THEN lkp.EA_EXTENSION_TRIGGER
|
||||
ELSE inp.EXTENSION_TRIGGER
|
||||
END
|
||||
END AS EA_EXTENSION_TRIGGER,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.EXTENDED_MATURITY_DATE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_EXTENDED_MATURITY_DATE IS NOT NULL THEN lkp.EA_EXTENDED_MATURITY_DATE
|
||||
ELSE inp.EXTENDED_MATURITY_DATE
|
||||
END
|
||||
END AS EA_EXTENDED_MATURITY_DATE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.ABS_PUBL_LAST_SURVEILLANCE2
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.EA_ABS_PUBL_SURVEIL_DATE2 IS NOT NULL THEN lkp.EA_ABS_PUBL_SURVEIL_DATE2
|
||||
ELSE inp.ABS_PUBL_LAST_SURVEILLANCE2
|
||||
END
|
||||
END AS EA_ABS_PUBL_SURVEIL_DATE2,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.CLASSIFICATION
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.CLASSIFICATION_C2D IS NOT NULL THEN lkp.CLASSIFICATION_C2D
|
||||
ELSE inp.CLASSIFICATION
|
||||
END
|
||||
END AS CLASSIFICATION_C2D,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.ABS_TYPE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.C2D_EA_ABS_TYPE IS NOT NULL THEN lkp.C2D_EA_ABS_TYPE
|
||||
ELSE inp.ABS_TYPE
|
||||
END
|
||||
END AS C2D_EA_ABS_TYPE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.MATURITY_DATE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.C2D_EA_MATURITY_DATE IS NOT NULL THEN lkp.C2D_EA_MATURITY_DATE
|
||||
ELSE inp.MATURITY_DATE
|
||||
END
|
||||
END AS C2D_EA_MATURITY_DATE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.ASSET_TYPE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.C2D_EA_ASSET_TYPE IS NOT NULL THEN lkp.C2D_EA_ASSET_TYPE
|
||||
ELSE inp.ASSET_TYPE
|
||||
END
|
||||
END AS C2D_EA_ASSET_TYPE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.DENOMINATION
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.C2D_EA_DENOMINATION IS NOT NULL THEN lkp.C2D_EA_DENOMINATION
|
||||
ELSE inp.DENOMINATION
|
||||
END
|
||||
END AS C2D_EA_DENOMINATION,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.DENOMINATION
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.CURRENCY IS NOT NULL THEN lkp.CURRENCY
|
||||
ELSE inp.DENOMINATION
|
||||
END
|
||||
END AS CURRENCY,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.REFERENCE_RATE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.C2D_EA_REFERENCE_RATE IS NOT NULL THEN lkp.C2D_EA_REFERENCE_RATE
|
||||
ELSE inp.REFERENCE_RATE
|
||||
END
|
||||
END AS C2D_EA_REFERENCE_RATE,
|
||||
CASE
|
||||
WHEN lkp.ASSET_KEY IS NULL THEN inp.GREEN_SUSTAINABLE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp.C2D_EA_GREEN_SUSTAINABLE IS NOT NULL THEN lkp.C2D_EA_GREEN_SUSTAINABLE
|
||||
ELSE inp.GREEN_SUSTAINABLE
|
||||
END
|
||||
END AS C2D_EA_GREEN_SUSTAINABLE
|
||||
FROM PASS_THROUGH inp
|
||||
LEFT JOIN DW_TMP.TE_ASSET_test lkp ON inp.ASSET_FK = lkp.ASSET_KEY
|
||||
WHERE rn=1
|
||||
)
|
||||
|
||||
-- Select data from previous subquery.
|
||||
-- Generate a new ASSET_FK value if null.
|
||||
-- Create columns with null values corresponding to the target table columns which are not updated anymore.
|
||||
SELECT CASE WHEN ASSET_FK IS NULL THEN {{ sequence_next_value(sequence_name) }}
|
||||
ELSE ASSET_FK
|
||||
END AS ASSET_KEY,
|
||||
CLASSIFICATION,
|
||||
EA_IS_EMERGENCY_COLLATERAL,
|
||||
C2D_ASSET_TYPE,
|
||||
EA_CSD,
|
||||
EA_COUPON_TYPE,
|
||||
EA_REF_MARKET,
|
||||
EA_CRD_OR_EQUIV,
|
||||
EA_IS_ABS_LLD,
|
||||
EA_IS_ABS_LLD_DATE,
|
||||
EA_ABS_SURVEIL_DATE,
|
||||
EA_ABS_TYPE,
|
||||
EA_CEPH_IS_INFLAT,
|
||||
EA_CEPH_IS_CALL_PUT,
|
||||
EA_CEPH_IS_SINKABLE,
|
||||
EA_CEPH_COMMENT,
|
||||
EA_IS_OUTRIGHT_PURCHASE,
|
||||
EA_LIQ_CLASS,
|
||||
EA_DENOMINATION,
|
||||
EA_NCB_COMMENT,
|
||||
EA_NAME,
|
||||
EA_VALIDATION_STATUS,
|
||||
EA_ISSUANCE_DATE,
|
||||
C2D_MATURITY_DATE,
|
||||
EA_SENDER_CODE,
|
||||
EA_NON_OWN_USE_HAIRCUT,
|
||||
EA_EXTENSION_OPTION_EXERCISED,
|
||||
EA_EFFECTIVE_MATURITY_DATE,
|
||||
EA_COVERED_BOND_OU,
|
||||
EA_OWN_USE_HAIRCUT,
|
||||
EA_CQS,
|
||||
EA_EXTENDIBLE,
|
||||
EA_EXTENSION_TRIGGER,
|
||||
EA_EXTENDED_MATURITY_DATE,
|
||||
EA_ABS_PUBL_SURVEIL_DATE2,
|
||||
CLASSIFICATION_C2D,
|
||||
C2D_EA_ABS_TYPE,
|
||||
C2D_EA_MATURITY_DATE,
|
||||
C2D_EA_ASSET_TYPE,
|
||||
C2D_EA_DENOMINATION,
|
||||
CURRENCY,
|
||||
C2D_EA_REFERENCE_RATE,
|
||||
C2D_EA_GREEN_SUSTAINABLE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS IS_SECURED,
|
||||
CAST(NULL AS VARCHAR2(255)) AS IS_EXTENDIBLE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS TMS_GROUP_PATH,
|
||||
CAST(NULL AS VARCHAR2(255)) AS TMS_GROUP_PATH_NAME,
|
||||
CAST(NULL AS VARCHAR2(255)) AS ISSUE_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MATURITY_LAST_REDEMPTION_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS TMS_ACTIVE_SINCE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS TMS_ACTIVE_UNTIL,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CURRENCY_2,
|
||||
CAST(NULL AS VARCHAR2(255)) AS INTEREST_RATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS TMS_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS PERIOD_ID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS PRICING_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS ASSET_BBG_NAME,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_BM_IDX,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_FLT_BM_MULTIPLIER,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_COLLAT_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_MARKET_ISSUE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_MATURITY_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS POOL_FACTOR,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_FLT_SPREAD,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_REDEMPTION_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_REDEMPTION_FREQ,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_REDEMPTION_PRICE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_ISSUE_PRICE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_STATUS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS UOC_INTEREST_PAYMENT_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MATURITY_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS UOC_BUCKET_SIZE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS IS_ELIGIBLE_VIA_GUARANTOR,
|
||||
CAST(NULL AS VARCHAR2(255)) AS UOC_RESIDUAL_MATURITY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS ACCOUNTING_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS GROUPING_VALUE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS SPREAD_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS TMS_ELIGIBILITY_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REF_AMOUNT_BUCKET,
|
||||
CAST(NULL AS VARCHAR2(255)) AS ISSUANCE_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BRANCH6_ID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BRANCH7_ID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BRANCH8_ID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BRANCH9_ID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS TMS_NAME,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_CSD,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_SECURITISATION_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CFI_CLASSIFICATION,
|
||||
CAST(NULL AS VARCHAR2(255)) AS INSTRUMENT_ESA_95_CLASS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS INSTR_ESA_95_CLASS_VAL_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS INSTRUMENT_ESA_2010_CLASS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REDEMPTION_CURRENCY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_SUPPL_INFO,
|
||||
CAST(NULL AS VARCHAR2(255)) AS UOC_RESET_PERIOD_MORE_ONE_YEAR,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CAP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REFERENCERATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REFERENCERATECOMMENT,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_TICKER,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_STRIP_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_MTY_YEARS_TDY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_EXCHANGE_CODE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_PRVT_PLACE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_PUTABLE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_ISSUER_INDUSTRY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_INFLATION_LINKED_INDICATOR,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_IS_PRIVATE_PLACEMENT,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CLASSIFICATION_TMS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS ISSUE_DATE_TMS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS ISSUE_DATE_CSDB,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CURRENCY_TMS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CURRENCY_MDP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CURRENCY_CSDB,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_TYPE_MDP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_TYPE_CSDB,
|
||||
CAST(NULL AS VARCHAR2(255)) AS POOL_FACTOR_CEPH,
|
||||
CAST(NULL AS VARCHAR2(255)) AS POOL_FACTOR_CSDB,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MATURITY_DATE_TMS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MATURITY_DATE_MDP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CP_PROGRAMME,
|
||||
CAST(NULL AS VARCHAR2(255)) AS C2D_ELA_ABS_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_MATURITY_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_ASSET_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS C2D_ELA_ASSET_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_DENOMINATION,
|
||||
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_OA_ID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_CONTRACT_ID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS C2D_UC_INSTRMNT_ID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_DEFAULTED_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_DEFAULTED_STANDARD,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_QUOTE_CONVENTION,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_RESTRUCTURING_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_MATURITY_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_TENOR,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_SENIORITY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_INSTRUMENT_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_CURRENCY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS TMS_FUTURES_MATURITY_BUCKET,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_FLOATER,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_INDUSTRY_GROUP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_ESG1,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_ESG2,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_ESG3,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REU_SECURITY_DESCRIPTION,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_CATEGORY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_CATEGORY_DESCRIPTION,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_TYPE_DESCRIPTION,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_SUBTYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REU_ASSET_SUBTYPE_DESCRIPTION,
|
||||
CAST(NULL AS VARCHAR2(255)) AS REU_ISO_CURRENCY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_DES_NOTES,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_INDUSTRY_SUBGROUP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_SECURITY_TYP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_SECURITY_TYP2,
|
||||
CAST(NULL AS VARCHAR2(255)) AS INDEP_SUBPROCESS_FK
|
||||
FROM CHECK_GET_ASSET_KEY
|
||||
@@ -0,0 +1,190 @@
|
||||
-- This model incrementally updates the target table DW_TMP.TE_ASSET_TRANSACTIONAL_DATA_test by adding new rows and updating the already existing ones.
|
||||
-- Wether the row is new or existing one is determined by ASSET_KEY column.
|
||||
-- The model is a part of the mapping m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD.
|
||||
-- Pre-/post-hook log data into the control tables.
|
||||
-- A_TASK_HISTORY_TARGET_insert tag ensures logging of the target table data into the control tables.
|
||||
{{ config(materialized='incremental',
|
||||
incremental_strategy='merge',
|
||||
unique_key='ASSET_FK',
|
||||
tags = ['m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD','A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
schema='DW_TMP',
|
||||
alias = 'TE_ASSET_TRANSACTIONAL_DATA_test',
|
||||
merge_update_columns = ['ASSET_FK',
|
||||
'C2D_ABS_LAST_COUPON_DATE',
|
||||
'C2D_COUPON_RATE',
|
||||
'EA_COUPON_FREQ',
|
||||
'EA_NOMINAL_VALUE_OUTSTAND_EUR',
|
||||
'EA_ACTUAL_VALUE_OUTSTAND_EUR',
|
||||
'STRIPS',
|
||||
'EA_NOMINAL_VALUE_OUTSTAND_LC',
|
||||
'EA_ACTUAL_VALUE_OUTSTAND_LC']
|
||||
) }}
|
||||
|
||||
-- Set sequence_name: to be used for the generation of the next sequence value.
|
||||
{% set sequence_name = source("dw_rar_sequences", "AK_NH_ASSET") %}
|
||||
|
||||
-- Select data from Source Qualifier
|
||||
-- Implement the GET_ASSET_CODE_MAP_CACHE lookup:
|
||||
-- - join with DW_REF_MAIN.ASSET_CODE_TYPE
|
||||
-- - join with DW_RAR.MU_ASSET_CODE_MAP
|
||||
-- - get the lookup ASSET_FK for the corresponding ISIN
|
||||
-- Perform some data transformation
|
||||
-- Filter data: keep rows where ASSET_FK is not null
|
||||
WITH PASS_THROUGH AS (
|
||||
SELECT CASE
|
||||
WHEN DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL THEN DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK
|
||||
ELSE NULL
|
||||
END AS ASSET_FK,
|
||||
ABS_DATE_LAST_COUPON,
|
||||
COUPON_RATE,
|
||||
COUPON_FREQUENCY,
|
||||
EA_NOMINAL_VALUE_OUTSTAND_EUR,
|
||||
EA_ACTUAL_VALUE_OUTSTAND_EUR,
|
||||
STRIPS,
|
||||
EA_NOMINAL_VALUE_OUTSTAND_LC,
|
||||
EA_ACTUAL_VALUE_OUTSTAND_LC,
|
||||
ROW_NUMBER() OVER (PARTITION BY ASSET_FK ORDER BY ASSET_FK) AS rn
|
||||
FROM {{ ref("m_DWH_ASSET_TE_ASSET_SF_C2D_EA_ELIGIBLE_ASSET_LOAD_TE_ASSET_SQ") }} SQ
|
||||
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
|
||||
FROM DW_REF_MAIN.ASSET_CODE_TYPE
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_ASSET_CODE_TYPE
|
||||
ON DW_REF_ASSET_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(SQ.ISIN_CODE_TYPE)))
|
||||
LEFT JOIN (SELECT ASSET_FK , CODE_TYPE_NO_ID, CODE_VALUE
|
||||
FROM DW_RAR.MU_ASSET_CODE_MAP
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_ASSET_CODE_MAP
|
||||
ON DW_RAR_MU_ASSET_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_ASSET_CODE_TYPE.CODE_TYPE_NO
|
||||
AND DW_RAR_MU_ASSET_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(SQ.ISIN_CODE_VALUE))
|
||||
WHERE DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL
|
||||
),
|
||||
|
||||
-- Select data from the previous subquery.
|
||||
-- Join with the target table DW_TMP.TE_ASSET_test.
|
||||
-- Update information in columns based on the current target table data and the incoming values.
|
||||
-- Remove duplicate rows.
|
||||
CHECK_GET_ASSET_KEY AS (
|
||||
SELECT inp.ASSET_FK,
|
||||
CASE
|
||||
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.ABS_DATE_LAST_COUPON
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp_trans.C2D_ABS_LAST_COUPON_DATE IS NOT NULL THEN lkp_trans.C2D_ABS_LAST_COUPON_DATE
|
||||
ELSE inp.ABS_DATE_LAST_COUPON
|
||||
END
|
||||
END AS C2D_ABS_LAST_COUPON_DATE,
|
||||
CASE
|
||||
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.COUPON_RATE
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp_trans.C2D_COUPON_RATE IS NOT NULL THEN lkp_trans.C2D_COUPON_RATE
|
||||
ELSE inp.COUPON_RATE
|
||||
END
|
||||
END AS C2D_COUPON_RATE,
|
||||
CASE
|
||||
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.COUPON_FREQUENCY
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp_trans.EA_COUPON_FREQ IS NOT NULL THEN lkp_trans.EA_COUPON_FREQ
|
||||
ELSE inp.COUPON_FREQUENCY
|
||||
END
|
||||
END AS EA_COUPON_FREQ,
|
||||
CASE
|
||||
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.EA_NOMINAL_VALUE_OUTSTAND_EUR
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp_trans.EA_NOMINAL_VALUE_OUTSTAND_EUR IS NOT NULL THEN lkp_trans.EA_NOMINAL_VALUE_OUTSTAND_EUR
|
||||
ELSE inp.EA_NOMINAL_VALUE_OUTSTAND_EUR
|
||||
END
|
||||
END AS EA_NOMINAL_VALUE_OUTSTAND_EUR,
|
||||
CASE
|
||||
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.EA_ACTUAL_VALUE_OUTSTAND_EUR
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp_trans.EA_ACTUAL_VALUE_OUTSTAND_EUR IS NOT NULL THEN lkp_trans.EA_ACTUAL_VALUE_OUTSTAND_EUR
|
||||
ELSE inp.EA_ACTUAL_VALUE_OUTSTAND_EUR
|
||||
END
|
||||
END AS EA_ACTUAL_VALUE_OUTSTAND_EUR,
|
||||
CASE
|
||||
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.STRIPS
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp_trans.STRIPS IS NOT NULL THEN lkp_trans.STRIPS
|
||||
ELSE inp.STRIPS
|
||||
END
|
||||
END AS STRIPS,
|
||||
CASE
|
||||
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.EA_NOMINAL_VALUE_OUTSTAND_LC
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp_trans.EA_NOMINAL_VALUE_OUTSTAND_LC IS NOT NULL THEN lkp_trans.EA_NOMINAL_VALUE_OUTSTAND_LC
|
||||
ELSE inp.EA_NOMINAL_VALUE_OUTSTAND_LC
|
||||
END
|
||||
END AS EA_NOMINAL_VALUE_OUTSTAND_LC,
|
||||
CASE
|
||||
WHEN lkp_trans.ASSET_FK IS NULL THEN inp.EA_ACTUAL_VALUE_OUTSTAND_LC
|
||||
ELSE
|
||||
CASE
|
||||
WHEN lkp_trans.EA_ACTUAL_VALUE_OUTSTAND_LC IS NOT NULL THEN lkp_trans.EA_ACTUAL_VALUE_OUTSTAND_LC
|
||||
ELSE inp.EA_ACTUAL_VALUE_OUTSTAND_LC
|
||||
END
|
||||
END AS EA_ACTUAL_VALUE_OUTSTAND_LC
|
||||
FROM PASS_THROUGH inp
|
||||
LEFT JOIN DW_TMP.TE_ASSET_TRANSACTIONAL_DATA_test lkp_trans ON lkp_trans.ASSET_FK = inp.ASSET_FK
|
||||
WHERE rn=1
|
||||
)
|
||||
|
||||
-- Select data from previous subquery.
|
||||
-- Generate a new ASSET_FK value if null.
|
||||
-- Create columns with null values corresponding to the target table columns which are not updated anymore.
|
||||
SELECT CASE WHEN ASSET_FK IS NULL THEN {{ sequence_next_value(sequence_name) }}
|
||||
ELSE ASSET_FK
|
||||
END AS ASSET_FK,
|
||||
C2D_ABS_LAST_COUPON_DATE,
|
||||
C2D_COUPON_RATE,
|
||||
EA_COUPON_FREQ,
|
||||
EA_NOMINAL_VALUE_OUTSTAND_EUR,
|
||||
EA_ACTUAL_VALUE_OUTSTAND_EUR,
|
||||
STRIPS,
|
||||
EA_NOMINAL_VALUE_OUTSTAND_LC,
|
||||
EA_ACTUAL_VALUE_OUTSTAND_LC,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_LAST_COUPON_RATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_LAST_COUPON_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_RATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_ISSUE_AMT,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_CURRENCY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CSDB_ISSUE_AMT,
|
||||
CAST(NULL AS VARCHAR2(255)) AS DATE_BASIS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT_LC,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT_EUR,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT2,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT2_EUR,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT2_TYPE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_FREQ,
|
||||
CAST(NULL AS VARCHAR2(255)) AS WAL,
|
||||
CAST(NULL AS VARCHAR2(255)) AS WAL_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_RATE_TMS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_RATE_MDP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT_LC_MDP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OUTSTANDING_AMT_LC_CSDB,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_FREQ_TMS,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COUPON_FREQ_CSDB,
|
||||
CAST(NULL AS VARCHAR2(255)) AS TMS_BISIP_DURATION,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_MTY_YEARS_TDY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_COUPON_RATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_PAYMENT_FREQUENCY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS MDP_CMA_DEFAULT_PROBABILITY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_CUR_MKT_CAP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_YAS_YLD_SPREAD,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_Z_SPRD_MID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_BLP_I_SPRD_MID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_MID_G_SPREAD,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_IDX_RATIO,
|
||||
CAST(NULL AS VARCHAR2(255)) AS FIXING_RATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS SPREAD,
|
||||
CAST(NULL AS VARCHAR2(255)) AS FLOOR,
|
||||
CAST(NULL AS VARCHAR2(255)) AS CAP,
|
||||
CAST(NULL AS VARCHAR2(255)) AS FACTOR,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_DVD_CRNCY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS BBG_DVD_PAY_DT,
|
||||
CAST(NULL AS VARCHAR2(255)) AS INDEP_SUBPROCESS_FK
|
||||
FROM CHECK_GET_ASSET_KEY
|
||||
@@ -0,0 +1,87 @@
|
||||
{{
|
||||
config(
|
||||
materialized="incremental",
|
||||
incremental_strategy="merge",
|
||||
unique_key=["asset_fk"],
|
||||
incremental_predicates=[
|
||||
"DBT_INTERNAL_SOURCE.UPD_INS = 'U'"
|
||||
],
|
||||
merge_update_columns=["ea_eligibility_status", "limit_amount", "tms_eligibility_type", "isin_with_larger_limit", "indep_subprocess_fk"],
|
||||
schema="DW_TMP",
|
||||
alias="TE_ASSET_ELIGIBILITY_LIMIT",
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
post_hook="{{ control_model_end('TRG') }}",
|
||||
tags=["m_DWH_EL_LIMIT_TE_ASSET_ELIGIBILITY_LIMIT_SF_C2D_EA_SF_TMS_UMI_SF_LED_LLMT", "A_TASK_HISTORY_TARGET_insert"],
|
||||
)
|
||||
}}
|
||||
|
||||
WITH EA_SQ AS (SELECT 'ISIN' AS CODE_TYPE_ISIN,
|
||||
TRIM(ISIN) AS CODE_VALUE_ISIN,
|
||||
STATUS
|
||||
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET")}}
|
||||
WHERE ACTION_TYPE = 'U'),
|
||||
UMI_SQ AS (SELECT 'TMS' AS CODE_TYPE_TMS,
|
||||
TRIM(UMI_ID) AS CODE_VALUE_TMS,
|
||||
OUTSTANDING_SIZE
|
||||
FROM {{ source("sf_tms", "UMISECURITYINFO") }} ),
|
||||
GET_ASSET_CODE_MAP AS (SELECT * FROM {{ ref("LKP_MU_ASSET_CODE_MAP_ASSET_FK")}}),
|
||||
ASSET_ENRICHMENT AS (SELECT DISTINCT DACM.ASSET_FK AS ASSET_FK,
|
||||
AE.INSTR_REPORT_TMS_ELIGIBILITY_TYPE AS INSTR_REPORT_TMS_ELIGIBILITY_TYPE
|
||||
FROM {{ source("sf_tms", "ASSET_ENRICHMENT") }} AE
|
||||
JOIN (SELECT * FROM GET_ASSET_CODE_MAP WHERE CODE_TYPE_ID in ('ISIN','TMS')) DACM
|
||||
ON AE.TYPE4_TMS=DACM.CODE_VALUE),
|
||||
ISIN_WITH_LARGER_LIMITS AS (SELECT DISTINCT DACM.ASSET_FK AS ASSET_FK
|
||||
FROM {{ source("sf_led", "ISIN_WITH_LARGER_LIMITS")}} IWLL
|
||||
JOIN (SELECT * FROM GET_ASSET_CODE_MAP WHERE CODE_TYPE_ID in ('ISIN','TMS')) DACM
|
||||
ON IWLL.IDENTIFIER_TYPE=DACM.CODE_TYPE_ID
|
||||
AND IWLL.IDENTIFIER =DACM.CODE_VALUE),
|
||||
UMI_FLTR AS (SELECT code_type_tms, code_value_tms, outstanding_size, asset_fk, a_valid_from, a_valid_to
|
||||
FROM UMI_SQ sq
|
||||
LEFT JOIN GET_ASSET_CODE_MAP gacm
|
||||
ON sq.CODE_TYPE_TMS = gacm.code_type_id AND sq.code_value_tms = gacm.code_value
|
||||
WHERE ASSET_FK IS NOT NULL),
|
||||
EA_FLTR AS (SELECT code_type_isin, code_value_isin, status, asset_fk, a_valid_from, a_valid_to
|
||||
FROM EA_SQ sq
|
||||
LEFT JOIN GET_ASSET_CODE_MAP gacm
|
||||
ON sq.CODE_TYPE_ISIN = gacm.code_type_id AND sq.code_value_isin = gacm.code_value
|
||||
WHERE ASSET_FK IS NOT NULL),
|
||||
EA_UMI AS (SELECT NVL(EA.ASSET_FK, UMI.ASSET_FK) AS ASSET_FK,
|
||||
STATUS,
|
||||
OUTSTANDING_SIZE
|
||||
FROM EA_FLTR EA
|
||||
FULL OUTER JOIN UMI_FLTR UMI
|
||||
ON EA.ASSET_FK = UMI.ASSET_FK),
|
||||
SOURCES AS (SELECT EU.ASSET_FK,
|
||||
EU.STATUS AS EA_ELIGIBILITY_STATUS,
|
||||
AE.INSTR_REPORT_TMS_ELIGIBILITY_TYPE AS TMS_ELIGIBILITY_TYPE,
|
||||
EU.OUTSTANDING_SIZE AS LIMIT_AMOUNT,
|
||||
CASE WHEN IWILL.ASSET_FK IS NULL THEN 'N' ELSE 'Y' END AS ISIN_WITH_LARGER_LIMIT
|
||||
FROM EA_UMI EU
|
||||
LEFT JOIN ASSET_ENRICHMENT AE
|
||||
ON EU.ASSET_FK = AE.ASSET_FK
|
||||
LEFT JOIN ISIN_WITH_LARGER_LIMITS IWILL
|
||||
ON EU.ASSET_FK = IWILL.ASSET_FK),
|
||||
FINAL_LOOKUP AS (SELECT SRC.EA_ELIGIBILITY_STATUS,
|
||||
SRC.TMS_ELIGIBILITY_TYPE,
|
||||
SRC.LIMIT_AMOUNT,
|
||||
SRC.ISIN_WITH_LARGER_LIMIT,
|
||||
CASE WHEN AEL.ASSET_FK IS NULL THEN 'I'
|
||||
WHEN NVL(AEL.EA_ELIGIBILITY_STATUS, '01') = NVL(SRC.EA_ELIGIBILITY_STATUS, '01') AND NVL(AEL.LIMIT_AMOUNT, -999999999) = NVL(SRC.LIMIT_AMOUNT,-999999999)
|
||||
AND NVL(AEL.TMS_ELIGIBILITY_TYPE, '>>NULL<<') = NVL(SRC.TMS_ELIGIBILITY_TYPE, '>>NULL<<') AND NVL(AEL.ISIN_WITH_LARGER_LIMIT, '>>NULL<<') = NVL(SRC.ISIN_WITH_LARGER_LIMIT,'>>NULL<<')
|
||||
THEN 'N' ELSE 'U' END AS UPD_INS,
|
||||
SRC.ASSET_FK,
|
||||
CAST(NULL AS VARCHAR2(1 CHAR)) AS TMS_PSPP_BLOCKED,
|
||||
(SELECT MAX(A_TASK_HISTORY_KEY) FROM CT_MRDS.A_TASK_HISTORY WHERE TASK_RUN_ID = '{{ invocation_id}}') AS INDEP_SUBPROCESS_FK
|
||||
FROM SOURCES SRC
|
||||
LEFT JOIN {{ this }} AEL
|
||||
ON SRC.ASSET_FK = AEL.ASSET_FK)
|
||||
SELECT ASSET_FK,
|
||||
EA_ELIGIBILITY_STATUS,
|
||||
TMS_ELIGIBILITY_TYPE,
|
||||
LIMIT_AMOUNT,
|
||||
ISIN_WITH_LARGER_LIMIT,
|
||||
TMS_PSPP_BLOCKED,
|
||||
INDEP_SUBPROCESS_FK,
|
||||
UPD_INS
|
||||
FROM FINAL_LOOKUP
|
||||
WHERE UPD_INS IN ('I','U')
|
||||
@@ -0,0 +1,33 @@
|
||||
{{ config(materialized='incremental',
|
||||
incremental_strategy='append',
|
||||
schema='CT_MRDS',
|
||||
alias='ERR_LOG',
|
||||
tags=["m_DWH_EL_LIMIT_TE_ASSET_ELIGIBILITY_LIMIT_SF_C2D_EA_SF_TMS_UMI_SF_LED_LLMT"],
|
||||
) }}
|
||||
{% set sequence_name = source("ct_rar_sequences", "AK_ERR_LOG") %}
|
||||
|
||||
WITH UMI_SQ AS (SELECT A_WORKFLOW_HISTORY_KEY,
|
||||
'TMS' AS CODE_TYPE_TMS,
|
||||
TRIM(UMI_ID) AS CODE_VALUE_TMS,
|
||||
OUTSTANDING_SIZE
|
||||
FROM {{ source("sf_tms", "UMISECURITYINFO") }} )
|
||||
SELECT {{ sequence_next_value(sequence_name) }} AS ERR_LOG_KEY,
|
||||
A_WORKFLOW_HISTORY_KEY, -- will be target key
|
||||
22 AS ERR_MESSAGE_FK,
|
||||
2 AS ERR_SEVERITY_FK,
|
||||
'{{ var("orchestration_run_id") }}' AS ERR_WORKFLOW_RUN_ID,
|
||||
'{{ var("workflow_name") }}' as ERR_WORKFLOW_NAME,
|
||||
'm_DWH_EL_LIMIT_TE_ASSET_ELIGIBILITY_LIMIT_SF_C2D_EA_SF_TMS_UMI_SF_LED_LLMT' as ERR_MAPPING_NAME,
|
||||
'm_DWH_EL_LIMIT_TE_ASSET_ELIGIBILITY_LIMIT_SF_C2D_EA_SF_TMS_UMI_SF_LED_LLMT' as ERR_LOCATION,
|
||||
'SF_TMS_UMISECURITYINFO' AS ERR_SOURCE,
|
||||
'UMI_ID' AS ERR_KEY_BUSINESS,
|
||||
'TMS_CODE_VALUE' AS ERR_KEY_BUSINESS_VALUE,
|
||||
'A_WORKFLOW_HISTORY_KEY' AS ERR_KEY_TECHNICAL,
|
||||
TO_CHAR(A_WORKFLOW_HISTORY_KEY) AS ERR_KEY_TECHNICAL_VALUE,
|
||||
'UMI_ID Code Value not found in DW_RAR_MU_ASSET_CODE_MAP. The source row will not be processed.' AS ERR_DESCRIPTION,
|
||||
(SELECT ERR_MESSAGE FROM CT_RAR.ERR_MESSAGE WHERE ERR_MESSAGE_KEY = 22) AS ERR_MESSAGE,
|
||||
A_WORKFLOW_HISTORY_KEY AS INDEP_SUBPROCESS_FK -- will be indep subprocess key
|
||||
FROM UMI_SQ sq
|
||||
LEFT JOIN {{ ref("LKP_MU_ASSET_CODE_MAP_ASSET_FK")}} acm
|
||||
ON sq.CODE_TYPE_TMS = acm.code_type_id AND sq.code_value_tms = acm.code_value
|
||||
WHERE ASSET_FK IS NULL
|
||||
@@ -0,0 +1,23 @@
|
||||
{{ config(materialized='table',
|
||||
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
schema='sf_c2d',
|
||||
alias = 'EA_ADDITIONAL_GUARANTOR_test'
|
||||
) }}
|
||||
|
||||
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
|
||||
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
|
||||
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
|
||||
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
|
||||
GROUP BY sf_c2d_ea_eligible_asset.ISIN
|
||||
),
|
||||
|
||||
FILTERED_EA_ELIGIBLE_ASSETS AS (
|
||||
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
|
||||
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
|
||||
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
|
||||
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
|
||||
|
||||
SELECT SQ.*
|
||||
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ADDITIONAL_GUARANTOR_SQ")}} SQ
|
||||
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK
|
||||
@@ -0,0 +1,141 @@
|
||||
-- This model incrementally updates the target table sf_c2d.EA_ELIGIBLE_ASSET_test by adding new rows and updating the already existing ones.
|
||||
-- Wether the row is new or existing one is determined by ISIN column.
|
||||
-- The model is a part of the mapping m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET.
|
||||
-- Pre-/post-hook log data into the control tables.
|
||||
-- A_TASK_HISTORY_TARGET_insert tag ensures logging of the target table data into the control tables.
|
||||
{{
|
||||
config(
|
||||
materialized='incremental',
|
||||
incremental_strategy='merge',
|
||||
schema = 'sf_c2d',
|
||||
unique_key='ISIN',
|
||||
merge_exclude_columns=['EMERGENCY_COLLATERAL','GUAR_OTHER_NAME','ISS_OTHER_NAME'],
|
||||
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET', 'A_TASK_HISTORY_TARGET_insert'],
|
||||
alias='EA_ELIGIBLE_ASSET_test',
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
post_hook="{{ control_model_end('TRG') }}"
|
||||
)
|
||||
}}
|
||||
|
||||
-- Create lookup:
|
||||
-- join SQ with the target model
|
||||
-- get the latest DATE_TIME_OF_ENTRY timestamp for each ISIN from the current target table data.
|
||||
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
|
||||
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
|
||||
FROM sf_c2d.ea_eligible_asset_test sf_c2d_ea_eligible_asset
|
||||
RIGHT JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
|
||||
GROUP BY sf_c2d_ea_eligible_asset.ISIN
|
||||
),
|
||||
|
||||
-- Join SQ table with the lookup
|
||||
-- Filter the incoming data: keep rows where ISIN is new or DATE_TIME_OF_ENTRY is later than the lookup one.
|
||||
FILTERED_EA_ELIGIBLE_ASSETS AS (
|
||||
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.*
|
||||
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
|
||||
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
|
||||
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY )
|
||||
|
||||
-- Select the filtered data with some naming adjustments.
|
||||
-- Create columns with null values corresponding to the target table columns which are not updated anymore.
|
||||
SELECT A_KEY,
|
||||
A_WORKFLOW_HISTORY_KEY,
|
||||
ISIN,
|
||||
ORN,
|
||||
ASSET_NAME,
|
||||
DENOMINATION,
|
||||
COUNTRY_OF_LOCATION,
|
||||
ASSET_TYPE,
|
||||
PRICE_QUOTATION,
|
||||
COUPON_DEFINITION,
|
||||
COUPON_RATE,
|
||||
COUPON_FREQUENCY,
|
||||
ISSUANCE_DATE,
|
||||
MATURITY_DATE,
|
||||
NOMINAL_VAL_OUTSTANDING,
|
||||
ISS_GROUP,
|
||||
ISS_LT_RATING_ID,
|
||||
ISS_LT_RATING_DATE,
|
||||
ISS_ST_RATING_ID,
|
||||
ISS_ST_RATING_DATE,
|
||||
ISS_CODE_TYPE,
|
||||
ISS_CODE_VALUE,
|
||||
ISS_NAME,
|
||||
ISS_RESIDENCE,
|
||||
ISS_PSE,
|
||||
GUAR_GROUP,
|
||||
GUAR_LT_RATING_ID,
|
||||
GUAR_LT_RATING_DATE,
|
||||
GUAR_CODE_TYPE,
|
||||
GUAR_CODE_VALUE,
|
||||
GUAR_NAME,
|
||||
GUAR_RESIDENCE,
|
||||
GUAR_PSE,
|
||||
NCB_COMMENT,
|
||||
REFERENCE_MARKET,
|
||||
LT_RATING_ID,
|
||||
LT_RATING_DATE,
|
||||
LT_RATING_PRG_NAME,
|
||||
LT_RATING_2_ID,
|
||||
LT_RATING_2_DATE,
|
||||
LT_RATING_2_PRG_NAME,
|
||||
ST_RATING_ID,
|
||||
ST_RATING_DATE,
|
||||
ST_RATING_PRG_NAME,
|
||||
ST_RATING_2_ID,
|
||||
ST_RATING_2_DATE,
|
||||
ST_RATING_2_PRG_NAME,
|
||||
ICAS_RATING,
|
||||
OUTRIGHT_PURCHASE,
|
||||
CRD_OR_EQUIVALENT,
|
||||
DATE_TIME_OF_ENTRY,
|
||||
SENDER_CODE,
|
||||
STATUS,
|
||||
DATE_TIME_OF_STATUS,
|
||||
VALIDATION_STATUS,
|
||||
LIQUIDITY_CLASS,
|
||||
ECB_COMMENT,
|
||||
LOAN_LEVEL_DATA,
|
||||
LOAN_LEVEL_DATA_LAST_DATE,
|
||||
ABS_PUBL_LAST_SURVEILLANCE,
|
||||
ABS_TYPE,
|
||||
ABS_DATE_LAST_COUPON,
|
||||
CEPH_INFLATION_LINKED,
|
||||
CEPH_CALLABLE_PUTABLE,
|
||||
CEPH_SINKABLE,
|
||||
CEPH_COMMENT,
|
||||
A_EA_HEADER_FK,
|
||||
ABS_PUBL_LAST_SURVEILLANCE2,
|
||||
ACTION_TYPE,
|
||||
ACTION_DATE,
|
||||
COVERED_BOND_OWN_USE,
|
||||
CREDIT_QUALITY_RANK,
|
||||
EFFECTIVE_MATURITY_DATE,
|
||||
EXTENDED_MATURITY_DATE,
|
||||
EXTENDIBLE,
|
||||
EXTENSION_OPTION_EXERCISED,
|
||||
EXTENSION_TRIGGER,
|
||||
GUAR_LEI,
|
||||
GUAR_ASSESSMENT,
|
||||
ISS_LEI,
|
||||
NON_OWN_USE_HAIRCUT,
|
||||
OWN_USE_HAIRCUT,
|
||||
WAL,
|
||||
WAL_REF_DATE,
|
||||
ACTUAL_OUTSTANDING_VALUE,
|
||||
STRIPS,
|
||||
UPDATED_BY,
|
||||
O_SNAPSHOT_DATE as SNAPSHOT_DATE,
|
||||
DBRS_PROGRAMME_ID,
|
||||
FITCH_PROGRAMME_ID,
|
||||
MOODY_PROGRAMME_ID,
|
||||
SNP_PROGRAMME_ID,
|
||||
REFERENCE_RATE,
|
||||
GREEN_SUSTAINABLE,
|
||||
TEST_INDICATOR,
|
||||
MPEC_RIAD_CROSSCHECK,
|
||||
SCOPE_PROGRAMME_ID,
|
||||
CREREF_PROGRAMME_ID,
|
||||
CAST(NULL AS VARCHAR2(255)) AS EMERGENCY_COLLATERAL,
|
||||
CAST(NULL AS VARCHAR2(255)) AS GUAR_OTHER_NAME,
|
||||
CAST(NULL AS VARCHAR2(255)) AS ISS_OTHER_NAME
|
||||
FROM FILTERED_EA_ELIGIBLE_ASSETS
|
||||
@@ -0,0 +1,23 @@
|
||||
{{ config(materialized='table',
|
||||
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
schema='sf_c2d',
|
||||
alias='EA_FOREIGN_EXCHANGE_SWAP_COUNT_test'
|
||||
) }}
|
||||
|
||||
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
|
||||
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
|
||||
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
|
||||
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
|
||||
GROUP BY sf_c2d_ea_eligible_asset.ISIN
|
||||
),
|
||||
|
||||
FILTERED_EA_ELIGIBLE_ASSETS AS (
|
||||
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
|
||||
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
|
||||
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
|
||||
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
|
||||
|
||||
SELECT SQ.*
|
||||
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_FOREIGN_EXCHANGE_SWAP_COUNT_SQ")}} SQ
|
||||
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK
|
||||
@@ -0,0 +1,23 @@
|
||||
{{ config(materialized='table',
|
||||
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
schema='sf_c2d',
|
||||
alias='EA_INTEREST_RATE_SWAP_PROVIDER_test'
|
||||
) }}
|
||||
|
||||
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
|
||||
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
|
||||
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
|
||||
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
|
||||
GROUP BY sf_c2d_ea_eligible_asset.ISIN
|
||||
),
|
||||
|
||||
FILTERED_EA_ELIGIBLE_ASSETS AS (
|
||||
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
|
||||
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
|
||||
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
|
||||
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
|
||||
|
||||
SELECT SQ.*
|
||||
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_INTEREST_RATE_SWAP_PROVIDER_SQ")}} SQ
|
||||
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK
|
||||
@@ -0,0 +1,23 @@
|
||||
{{ config(materialized='table',
|
||||
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
schema='sf_c2d',
|
||||
alias='EA_ISSUER_ACCOUNT_BANK_test'
|
||||
) }}
|
||||
|
||||
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
|
||||
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
|
||||
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
|
||||
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
|
||||
GROUP BY sf_c2d_ea_eligible_asset.ISIN
|
||||
),
|
||||
|
||||
FILTERED_EA_ELIGIBLE_ASSETS AS (
|
||||
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
|
||||
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
|
||||
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
|
||||
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
|
||||
|
||||
SELECT SQ.*
|
||||
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ISSUER_ACCOUNT_BANK_SQ")}} SQ
|
||||
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK
|
||||
@@ -0,0 +1,23 @@
|
||||
{{ config(materialized='table',
|
||||
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
schema='sf_c2d',
|
||||
alias='EA_LIQUIDITY_SUPPORT_PROVIDER_test'
|
||||
) }}
|
||||
|
||||
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
|
||||
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
|
||||
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
|
||||
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
|
||||
GROUP BY sf_c2d_ea_eligible_asset.ISIN
|
||||
),
|
||||
|
||||
FILTERED_EA_ELIGIBLE_ASSETS AS (
|
||||
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
|
||||
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
|
||||
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
|
||||
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
|
||||
|
||||
SELECT SQ.*
|
||||
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_LIQUIDITY_SUPPORT_PROVIDER_SQ")}} SQ
|
||||
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK
|
||||
@@ -0,0 +1,23 @@
|
||||
{{ config(materialized='table',
|
||||
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
schema='sf_c2d',
|
||||
alias='EA_ORIGINATOR_test'
|
||||
) }}
|
||||
|
||||
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
|
||||
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
|
||||
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
|
||||
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
|
||||
GROUP BY sf_c2d_ea_eligible_asset.ISIN
|
||||
),
|
||||
|
||||
FILTERED_EA_ELIGIBLE_ASSETS AS (
|
||||
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
|
||||
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
|
||||
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
|
||||
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
|
||||
|
||||
SELECT SQ.*
|
||||
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ORIGINATOR_SQ")}} SQ
|
||||
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK
|
||||
@@ -0,0 +1,23 @@
|
||||
{{ config(materialized='table',
|
||||
tags = ['m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET','A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
schema='sf_c2d',
|
||||
alias='EA_SERVICE_test'
|
||||
) }}
|
||||
|
||||
WITH LKP_SF_C2D_EA_ELIGIBLE_ASSET AS (
|
||||
SELECT sf_c2d_ea_eligible_asset.ISIN AS LKP_ISIN ,max(sf_c2d_ea_eligible_asset.DATE_TIME_OF_ENTRY) as LKP_DATE_TIME_OF_ENTRY
|
||||
FROM sf_c2d.ea_eligible_asset sf_c2d_ea_eligible_asset
|
||||
JOIN {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS ON SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN = sf_c2d_ea_eligible_asset.ISIN
|
||||
GROUP BY sf_c2d_ea_eligible_asset.ISIN
|
||||
),
|
||||
|
||||
FILTERED_EA_ELIGIBLE_ASSETS AS (
|
||||
SELECT SQ_OU_C2D_ELIGIBLE_ASSETS.A_KEY
|
||||
FROM {{ ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_ELIGIBLE_ASSET_SQ") }} SQ_OU_C2D_ELIGIBLE_ASSETS
|
||||
LEFT JOIN LKP_SF_C2D_EA_ELIGIBLE_ASSET ON LKP_SF_C2D_EA_ELIGIBLE_ASSET.LKP_ISIN = SQ_OU_C2D_ELIGIBLE_ASSETS.ISIN
|
||||
WHERE LKP_ISIN IS NULL OR DATE_TIME_OF_ENTRY > LKP_DATE_TIME_OF_ENTRY)
|
||||
|
||||
SELECT SQ.*
|
||||
FROM {{ref("m_DWH_PRELOAD_SF_C2D_EA_OU_C2D_EA_SERVICER_SQ")}} SQ
|
||||
JOIN FILTERED_EA_ELIGIBLE_ASSETS SF_C2D_EA_ELIGIBLE_ASSET ON SF_C2D_EA_ELIGIBLE_ASSET.A_KEY = SQ.A_EA_FK
|
||||
@@ -0,0 +1,63 @@
|
||||
{{ config(
|
||||
materialized = "table",
|
||||
schema = "SF_RIAD",
|
||||
alias = "ENTTY_IDNTFRS_FLTTND",
|
||||
tags = ["m_DWH_PRELOAD_SF_RIAD_ENTTY_IDNTFRS_FLTTND_OU_RIAD_ENTTY_IDNTFRS_FLTTND", "A_TASK_HISTORY_TARGET_insert"],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
post_hook="{{ control_model_end('TRG') }}"
|
||||
) }}
|
||||
|
||||
SELECT
|
||||
A_KEY,
|
||||
{{ get_workflow_history_key() }} AS A_WORKFLOW_HISTORY_KEY,
|
||||
ENTTY_RIAD_ID,
|
||||
BSNSS_VLD_FRM,
|
||||
BSNSS_VLD_T,
|
||||
CNTRY,
|
||||
DT_BRTH,
|
||||
DT_CLS,
|
||||
ENTTY_RIAD_CD,
|
||||
NM_ENTTY,
|
||||
ECNMC_ACTVTY,
|
||||
INSTTTNL_SCTR,
|
||||
INSTTTNL_SCTR_DTL,
|
||||
PSTL_BX_CD,
|
||||
STRT,
|
||||
PSTL_CD,
|
||||
CTY,
|
||||
IS_INCTV,
|
||||
IS_UCITS_CMPLNT,
|
||||
INTRNTNL_ORGNSTN_CD,
|
||||
BLNC_SHT_TTL_DMSTC,
|
||||
NT_ASSTS_DMSTC,
|
||||
COLLATERALGROUP,
|
||||
INSTTTNL_SCTR_CNTRL,
|
||||
IS_C2D_RLVNT,
|
||||
IS_RAR_RLVNT,
|
||||
ARTCL_123_STTS,
|
||||
CSPP_ASSSSMNT,
|
||||
ENTRY_DATE,
|
||||
RIAD,
|
||||
AVID,
|
||||
BIC,
|
||||
LEI,
|
||||
NCB,
|
||||
REU,
|
||||
UCDB_CD,
|
||||
VAT,
|
||||
TMS_CD,
|
||||
BLMBRG_CD,
|
||||
C2D_CD,
|
||||
ULTIMATEHEAD_ENTTY_RIAD_CD,
|
||||
ULTIMATEHEAD_ENTTY_RIAD_ID,
|
||||
NMBR_EMPLYS,
|
||||
ENTRPRS_SZ,
|
||||
TYP_BNKNG_LCNS,
|
||||
LGL_FRM,
|
||||
BLNC_SHT_TTL,
|
||||
BLNC_SHT_TTL_GRP,
|
||||
CMMNT
|
||||
FROM
|
||||
{{ ref(
|
||||
"m_DWH_PRELOAD_SF_RIAD_ENTTY_IDNTFRS_FLTTND_OU_RIAD_ENTTY_IDNTFRS_FLTTND_SQ"
|
||||
) }}
|
||||
@@ -0,0 +1,173 @@
|
||||
{{ config(materialized='incremental',
|
||||
incremental_strategy='append',
|
||||
unique_key='ASSET_FK',
|
||||
tags = ['m_DWH_RAT_TE_ASSET_RATING_SF_C2D_EA_ELIGIBLE_ASSET_LOAD','A_TASK_HISTORY_TARGET_insert'],
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
post_hook="{{ control_model_end('TRG') }}",
|
||||
schema='DW_TMP',
|
||||
alias = 'TE_ASSET_RATING_test'
|
||||
) }}
|
||||
|
||||
WITH MAPPLET AS (
|
||||
SELECT ASSET_FK,
|
||||
ISIN_CODE_VALUE AS ISIN,
|
||||
RTRIM(LTRIM(ST_RATING_ID)) AS ST_RATING_ID,
|
||||
RTRIM(LTRIM(ST_RATING_PRG_NAME)) AS ST_RATING_PRG_NAME,
|
||||
RTRIM(LTRIM(ST_RATING_2_ID)) AS ST_RATING_2_ID,
|
||||
RTRIM(LTRIM(ST_RATING_2_PRG_NAME)) AS ST_RATING_2_PRG_NAME,
|
||||
RTRIM(LTRIM(LT_RATING_ID)) AS LT_RATING_ID,
|
||||
RTRIM(LTRIM(LT_RATING_PRG_NAME)) AS LT_RATING_PRG_NAME,
|
||||
RTRIM(LTRIM(LT_RATING_2_ID)) AS LT_RATING_2_ID,
|
||||
RTRIM(LTRIM(LT_RATING_2_PRG_NAME)) AS LT_RATING_2_PRG_NAME,
|
||||
ACTION_TYPE
|
||||
FROM {{ ref("m_DWH_RAT_TE_ASSET_RATING_SF_C2D_EA_ELIGIBLE_ASSET_LOAD_SQ") }} SQ
|
||||
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
|
||||
FROM DW_REF_MAIN.ASSET_CODE_TYPE
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_ASSET_CODE_TYPE
|
||||
ON DW_REF_ASSET_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(SQ.ISIN_CODE_TYPE)))
|
||||
LEFT JOIN (SELECT ASSET_FK , CODE_TYPE_NO_ID, CODE_VALUE
|
||||
FROM DW_RAR.MU_ASSET_CODE_MAP
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_ASSET_CODE_MAP
|
||||
ON DW_RAR_MU_ASSET_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_ASSET_CODE_TYPE.CODE_TYPE_NO
|
||||
AND DW_RAR_MU_ASSET_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(SQ.ISIN_CODE_VALUE))
|
||||
WHERE ASSET_FK IS NOT NULL
|
||||
),
|
||||
|
||||
ST_RATING_ID_NOT_NULL AS (
|
||||
SELECT ASSET_FK,
|
||||
ST_RATING_ID,
|
||||
ST_RATING_PRG_NAME,
|
||||
CASE
|
||||
WHEN SUBSTR(ST_RATING_ID,1,2)='SP' THEN 1
|
||||
ELSE 0
|
||||
END AS v_RATING_TYPE_SP
|
||||
FROM MAPPLET
|
||||
WHERE ST_RATING_ID IS NOT NULL AND SUBSTR(ST_RATING_ID,1,1)='S'
|
||||
AND SUBSTR(ST_RATING_ID,2,1) IN ('A','P')
|
||||
AND SUBSTR(ST_RATING_ID,3,2) IN ('MY','SP','DB','IA','SC')
|
||||
),
|
||||
ST_RATING_ID_NOT_NULL_2 AS (
|
||||
SELECT ASSET_FK,
|
||||
ST_RATING_ID AS VALUE,
|
||||
ST_RATING_PRG_NAME AS PROGRAMME_NAME,
|
||||
CASE
|
||||
WHEN v_RATING_TYPE_SP=1 THEN 'EADB_I_ST_P_'||SUBSTR(ST_RATING_ID,3,2)
|
||||
ELSE 'EADB_I_ST_'||SUBSTR(ST_RATING_ID,3,2)
|
||||
END AS RATING_TYPE_FK,
|
||||
'C2D_EA' AS SOURCE
|
||||
FROM ST_RATING_ID_NOT_NULL
|
||||
),
|
||||
|
||||
ST_RATING_2_ID_NOT_NULL AS (
|
||||
SELECT ASSET_FK,
|
||||
ST_RATING_2_ID,
|
||||
ST_RATING_2_PRG_NAME,
|
||||
CASE
|
||||
WHEN SUBSTR(ST_RATING_2_ID,1,2)='SP' THEN 1
|
||||
ELSE 0
|
||||
END AS v_RATING_TYPE_SP
|
||||
FROM MAPPLET
|
||||
WHERE ST_RATING_2_ID IS NOT NULL
|
||||
AND SUBSTR(ST_RATING_2_ID,1,1)='S'
|
||||
AND SUBSTR(ST_RATING_2_ID,2,1) IN ('A','P')
|
||||
AND SUBSTR(ST_RATING_2_ID,3,2) IN ('MY','SP','DB','IA','SC')
|
||||
),
|
||||
|
||||
ST_RATING_2_ID_NOT_NULL_2 AS (
|
||||
SELECT ASSET_FK,
|
||||
ST_RATING_2_ID AS VALUE,
|
||||
ST_RATING_2_PRG_NAME AS PROGRAMME_NAME,
|
||||
CASE
|
||||
WHEN v_RATING_TYPE_SP=1 THEN 'EADB_I_ST_P_'||SUBSTR(ST_RATING_2_ID,3,2)
|
||||
ELSE 'EADB_I_ST_'||SUBSTR(ST_RATING_2_ID,3,2)
|
||||
END AS RATING_TYPE_FK,
|
||||
'C2D_EA' AS SOURCE
|
||||
FROM ST_RATING_2_ID_NOT_NULL
|
||||
),
|
||||
|
||||
LT_RATING_ID_NOT_NULL AS (
|
||||
SELECT ASSET_FK,
|
||||
LT_RATING_ID,
|
||||
LT_RATING_PRG_NAME,
|
||||
CASE
|
||||
WHEN SUBSTR(LT_RATING_ID,1,2)='LP' THEN 1
|
||||
ELSE 0
|
||||
END AS v_RATING_TYPE_LP
|
||||
FROM MAPPLET
|
||||
WHERE LT_RATING_ID IS NOT NULL AND SUBSTR(LT_RATING_ID,1,1)='L'
|
||||
AND SUBSTR(LT_RATING_ID,2,1) IN ('A','P')
|
||||
AND SUBSTR(ST_RATING_ID,3,2) IN ('MY','SP','DB','IA','SC')
|
||||
),
|
||||
|
||||
LT_RATING_ID_NOT_NULL_2 AS(
|
||||
SELECT ASSET_FK,
|
||||
LT_RATING_ID AS VALUE,
|
||||
LT_RATING_PRG_NAME AS PROGRAMME_NAME,
|
||||
CASE
|
||||
WHEN v_RATING_TYPE_LP=1 THEN 'EADB_I_LT_P_'||SUBSTR(LT_RATING_ID,3,2)
|
||||
ELSE 'EADB_I_LT_'||SUBSTR(LT_RATING_ID,3,2)
|
||||
END AS RATING_TYPE_FK,
|
||||
'C2D_EA' AS SOURCE
|
||||
FROM LT_RATING_ID_NOT_NULL
|
||||
),
|
||||
|
||||
LT_RATING_2_ID_NOT_NULL AS (
|
||||
SELECT ASSET_FK,
|
||||
LT_RATING_2_ID,
|
||||
LT_RATING_2_PRG_NAME,
|
||||
CASE
|
||||
WHEN SUBSTR(LT_RATING_2_ID,1,2)='LP' THEN 1
|
||||
ELSE 0
|
||||
END AS v_RATING_TYPE_LP
|
||||
FROM MAPPLET
|
||||
WHERE LT_RATING_2_ID IS NOT NULL AND SUBSTR(LT_RATING_2_ID,1,1)='L'
|
||||
AND SUBSTR(LT_RATING_2_ID,2,1) IN ('A','P')
|
||||
AND SUBSTR(ST_RATING_2_ID,3,2) IN ('MY','SP','DB','IA','SC')
|
||||
),
|
||||
|
||||
LT_RATING_2_ID_NOT_NULL_2 AS(
|
||||
SELECT ASSET_FK,
|
||||
LT_RATING_2_ID AS VALUE,
|
||||
LT_RATING_2_PRG_NAME AS PROGRAMME_NAME,
|
||||
CASE
|
||||
WHEN v_RATING_TYPE_LP=1 THEN 'EADB_I_LT_P_'||SUBSTR(LT_RATING_2_ID,3,2)
|
||||
ELSE 'EADB_I_LT_'||SUBSTR(LT_RATING_2_ID,3,2)
|
||||
END AS RATING_TYPE_FK,
|
||||
'C2D_EA' AS SOURCE
|
||||
FROM LT_RATING_2_ID_NOT_NULL
|
||||
),
|
||||
|
||||
UNION_SQ AS (
|
||||
SELECT * FROM ST_RATING_ID_NOT_NULL_2
|
||||
UNION ALL
|
||||
SELECT * FROM ST_RATING_2_ID_NOT_NULL_2
|
||||
UNION ALL
|
||||
SELECT * FROM LT_RATING_ID_NOT_NULL_2
|
||||
UNION ALL
|
||||
SELECT * FROM LT_RATING_2_ID_NOT_NULL_2),
|
||||
|
||||
DEDUPLICATED AS (
|
||||
SELECT ASSET_FK,
|
||||
VALUE,
|
||||
PROGRAMME_NAME,
|
||||
RATING_TYPE_FK,
|
||||
SOURCE,
|
||||
ROW_NUMBER() OVER (PARTITION BY ASSET_FK, RATING_TYPE_FK ORDER BY ASSET_FK ASC, RATING_TYPE_FK ASC) AS rn
|
||||
FROM UNION_SQ)
|
||||
|
||||
SELECT ASSET_FK,
|
||||
VALUE,
|
||||
PROGRAMME_NAME,
|
||||
RATING_TYPE_FK,
|
||||
SOURCE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS DATE_,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OTHER_NOTES,
|
||||
CAST(NULL AS VARCHAR2(255)) AS IS_PRELIMENARY,
|
||||
CAST(NULL AS VARCHAR2(255)) AS WATCHLIST_VALUE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS WATCHLIST_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OUTLOOK_VALUE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS OUTLOOK_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS RATING_ACTION,
|
||||
CAST(NULL AS VARCHAR2(255)) AS RATING_ACTION_DATE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS INDEP_SUBPROCESS_FK -- Added to replicate the original target table.
|
||||
FROM DEDUPLICATED WHERE rn=1
|
||||
@@ -0,0 +1,201 @@
|
||||
{{ config(
|
||||
materialized = "incremental",
|
||||
incremental_strategy="append",
|
||||
schema = "DW_TMP",
|
||||
alias = "TE_INSTITUTION_RATING_GUAR",
|
||||
tags = ["m_DWH_RAT_TE_INST_RATING_SF_C2D_EA_ELIGIBLE_ASSET", "A_TASK_HISTORY_TARGET_insert"],
|
||||
pre_hook = "{{ control_model_start() }}",
|
||||
post_hook = "{{ control_model_end('TRG') }}"
|
||||
) }}
|
||||
|
||||
WITH EVALUATE_VALUE AS (
|
||||
--IIF(NOT ISNULL(ISS_CODE_TYPE),ISS_CODE_TYPE,'NCB')
|
||||
--decode(true,v_ISS_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_ISS_CODE_TYPE)
|
||||
SELECT
|
||||
CASE
|
||||
WHEN SQ.ISS_CODE_TYPE IS NULL THEN 'NCB'
|
||||
WHEN SQ.ISS_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
|
||||
ELSE SQ.ISS_CODE_TYPE
|
||||
END AS ISS_CODE_TYPE,
|
||||
SQ.ISS_CODE_VALUE,
|
||||
--IIF(NOT ISNULL(GUAR_CODE_TYPE),GUAR_CODE_TYPE,'NCB')
|
||||
--decode(true,v_GUAR_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_GUAR_CODE_TYPE)
|
||||
CASE
|
||||
WHEN SQ.GUAR_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
|
||||
--:UDF.UDF_CLEAN_CODE_TYPE(inp_CODE_TYPE)
|
||||
--iif(ISNULL(inp_CODE_TYPE) OR LENGTH(:UDF.UDF_TRIM(inp_CODE_TYPE)) = 0, 'NCB', UPPER(:UDF.UDF_TRIM(inp_CODE_TYPE)))
|
||||
--:UDF.UDF_TRIM(inp_CODE_TYPE)
|
||||
--LTRIM(RTRIM(input_string))
|
||||
WHEN SQ.GUAR_CODE_TYPE IS NULL
|
||||
OR LENGTH(LTRIM(RTRIM(SQ.GUAR_CODE_TYPE))) = 0 THEN 'NCB'
|
||||
ELSE UPPER(LTRIM(RTRIM(CAST(SQ.GUAR_CODE_TYPE AS VARCHAR2(255)))))
|
||||
END AS CODE_TYPE,
|
||||
SQ.GUAR_CODE_VALUE AS CODE_VALUE,
|
||||
SQ.ISS_LT_RATING_ID,
|
||||
SQ.ISS_ST_RATING_ID,
|
||||
SQ.GUAR_LT_RATING_ID,
|
||||
SQ.A_WORKFLOW_HISTORY_KEY
|
||||
FROM
|
||||
{{ source("sf_c2d", "EA_ELIGIBLE_ASSET") }} SQ
|
||||
WHERE SQ.ACTION_TYPE = 'U'
|
||||
),
|
||||
|
||||
LKP_CODE_TYPE_NO AS (
|
||||
SELECT
|
||||
EVALUATE_VALUE.CODE_TYPE AS CODE_TYPE_NO,
|
||||
EVALUATE_VALUE.CODE_TYPE AS GUAR_CODE_TYPE,
|
||||
EVALUATE_VALUE.CODE_VALUE AS GUAR_CODE_VALUE,
|
||||
EVALUATE_VALUE.GUAR_LT_RATING_ID,
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.INSTITUTION_FK,
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID AS CODE_TYPE_NO_ID,
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE
|
||||
FROM EVALUATE_VALUE
|
||||
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
|
||||
FROM DW_REF_MAIN.INSTITUTION_CODE_TYPE
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_INSTITUTION_CODE_TYPE
|
||||
ON DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(EVALUATE_VALUE.CODE_TYPE)))
|
||||
LEFT JOIN (SELECT INSTITUTION_FK , CODE_TYPE_NO_ID, CODE_VALUE
|
||||
FROM DW_RAR.MU_INSTITUTION_CODE_MAP
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_INSTITUTION_CODE_MAP
|
||||
ON DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_NO
|
||||
AND DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(EVALUATE_VALUE.CODE_VALUE))
|
||||
),
|
||||
|
||||
EXP_GET_INSTITUTION_KEY AS (
|
||||
SELECT
|
||||
--iif(isnull(CODE_VALUE), null, Inp_INSTITUTION_FK)
|
||||
CASE
|
||||
WHEN LKP_CODE_TYPE_NO.INSTITUTION_FK IS NULL THEN NULL
|
||||
ELSE LKP_CODE_TYPE_NO.INSTITUTION_FK
|
||||
END AS INSTITUTION_FK,
|
||||
--iif(isnull(CODE_VALUE), null, inp_CODE_TYPE_NO)
|
||||
CASE
|
||||
WHEN LKP_CODE_TYPE_NO.CODE_VALUE IS NULL THEN NULL
|
||||
ELSE LKP_CODE_TYPE_NO.CODE_TYPE_NO
|
||||
END AS CODE_TYPE_NO,
|
||||
LKP_CODE_TYPE_NO.CODE_VALUE,
|
||||
LKP_CODE_TYPE_NO.CODE_TYPE_NO_ID,
|
||||
LKP_CODE_TYPE_NO.CODE_VALUE,
|
||||
LKP_CODE_TYPE_NO.GUAR_CODE_TYPE,
|
||||
LKP_CODE_TYPE_NO.GUAR_CODE_VALUE,
|
||||
LKP_CODE_TYPE_NO.GUAR_LT_RATING_ID
|
||||
FROM
|
||||
LKP_CODE_TYPE_NO
|
||||
),
|
||||
|
||||
FILL_NULL_INSTITUTION_CODE_KEY AS (
|
||||
SELECT
|
||||
EXP_GET_INSTITUTION_KEY.INSTITUTION_FK,
|
||||
--EXP_GET_INSTITUTION_KEY.CODE_TYPE_NO,
|
||||
--EXP_GET_INSTITUTION_KEY.CODE_VALUE,
|
||||
--EXP_GET_INSTITUTION_KEY.CODE_TYPE_NO_ID,
|
||||
--EXP_GET_INSTITUTION_KEY.CODE_VALUE1,
|
||||
EXP_GET_INSTITUTION_KEY.GUAR_CODE_TYPE,
|
||||
EXP_GET_INSTITUTION_KEY.GUAR_CODE_VALUE,
|
||||
EXP_GET_INSTITUTION_KEY.GUAR_LT_RATING_ID
|
||||
FROM
|
||||
EXP_GET_INSTITUTION_KEY
|
||||
--not isnull(INSTITUTION_FK) AND NOT ISNULL(GUAR_LT_RATING_ID)
|
||||
WHERE
|
||||
EXP_GET_INSTITUTION_KEY.INSTITUTION_FK IS NOT NULL
|
||||
AND EXP_GET_INSTITUTION_KEY.GUAR_LT_RATING_ID IS NOT NULL
|
||||
),
|
||||
|
||||
EXP_MAP_GUAR_TARGET AS (
|
||||
SELECT
|
||||
FILL_NULL_INSTITUTION_CODE_KEY.INSTITUTION_FK,
|
||||
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID AS RATING,
|
||||
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='SP','EADB_O_LT_G_SP',
|
||||
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='DB','EADB_O_LT_G_DB',
|
||||
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='IA','EADB_O_LT_G_IA',
|
||||
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='MY','EADB_O_LT_G_MY',
|
||||
--IIF(SUBSTR(GUAR_LT_RATING_ID,3,2)='SC','EADB_O_LT_G_SC',NULL)))))
|
||||
--rtrim(ltrim(RATING))
|
||||
CASE
|
||||
WHEN (
|
||||
SUBSTR(
|
||||
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
|
||||
3,
|
||||
2
|
||||
)
|
||||
) = 'SP' THEN 'EADB_O_LT_G_SP'
|
||||
WHEN (
|
||||
SUBSTR(
|
||||
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
|
||||
3,
|
||||
2
|
||||
)
|
||||
) = 'DP' THEN 'EADB_O_LT_G_DP'
|
||||
WHEN (
|
||||
SUBSTR(
|
||||
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
|
||||
3,
|
||||
2
|
||||
)
|
||||
) = 'IA' THEN 'EADB_O_LT_G_IA'
|
||||
WHEN (
|
||||
SUBSTR(
|
||||
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
|
||||
3,
|
||||
2
|
||||
)
|
||||
) = 'MY' THEN 'EADB_O_LT_G_MY'
|
||||
WHEN (
|
||||
SUBSTR(
|
||||
FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID,
|
||||
3,
|
||||
2
|
||||
)
|
||||
) = 'SC' THEN 'EADB_O_LT_G_SC'
|
||||
ELSE CAST(NULL AS VARCHAR2(255))
|
||||
END AS RATING_TYPE_FK,
|
||||
DW_REF_MAIN_RATING.NUMERICAL_EQUIVALENT
|
||||
FROM
|
||||
FILL_NULL_INSTITUTION_CODE_KEY
|
||||
LEFT JOIN DW_REF_MAIN.RATING DW_REF_MAIN_RATING ON DW_REF_MAIN_RATING.RATING_VALUE_CODE = FILL_NULL_INSTITUTION_CODE_KEY.GUAR_LT_RATING_ID
|
||||
WHERE
|
||||
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
|
||||
),
|
||||
AGG_MAX_NUM_EQUIVALENT AS (
|
||||
SELECT
|
||||
EXP_MAP_GUAR_TARGET.INSTITUTION_FK,
|
||||
EXP_MAP_GUAR_TARGET.RATING_TYPE_FK,
|
||||
EXP_MAP_GUAR_TARGET.NUMERICAL_EQUIVALENT,
|
||||
EXP_MAP_GUAR_TARGET.RATING
|
||||
FROM
|
||||
EXP_MAP_GUAR_TARGET
|
||||
GROUP BY
|
||||
EXP_MAP_GUAR_TARGET.INSTITUTION_FK,
|
||||
EXP_MAP_GUAR_TARGET.RATING_TYPE_FK,
|
||||
EXP_MAP_GUAR_TARGET.NUMERICAL_EQUIVALENT,
|
||||
EXP_MAP_GUAR_TARGET.RATING
|
||||
ORDER BY
|
||||
EXP_MAP_GUAR_TARGET.INSTITUTION_FK,
|
||||
EXP_MAP_GUAR_TARGET.RATING_TYPE_FK,
|
||||
EXP_MAP_GUAR_TARGET.NUMERICAL_EQUIVALENT
|
||||
)
|
||||
|
||||
SELECT
|
||||
AGG_MAX_NUM_EQUIVALENT.INSTITUTION_FK,
|
||||
AGG_MAX_NUM_EQUIVALENT.RATING_TYPE_FK,
|
||||
CAST(NULL as varchar2(255)) AS SPECIFIC_PROVIDER_NAME,
|
||||
AGG_MAX_NUM_EQUIVALENT.RATING AS VALUE,
|
||||
CAST(NULL as varchar2(255)) AS DATE_,
|
||||
CAST(NULL as varchar2(255)) AS OTHER_NOTES,
|
||||
CAST(NULL as varchar2(255)) AS VALUE_PD,
|
||||
CAST(NULL as varchar2(255)) AS IS_PRELIMINARY,
|
||||
AGG_MAX_NUM_EQUIVALENT.NUMERICAL_EQUIVALENT,
|
||||
CAST(NULL as varchar2(255)) AS OUTLOOK_VALUE,
|
||||
CAST(NULL as varchar2(255)) AS OUTLOOK_DATE,
|
||||
CAST(NULL as varchar2(255)) AS WATCHLIST_VALUE,
|
||||
CAST(NULL as varchar2(255)) AS WATCHLIST_DATE,
|
||||
--SETVARIABLE($$Var_m_Start_StartTime,NULL)
|
||||
CAST(NULL as date) AS SNAPSHOT_DATE,
|
||||
CAST(NULL as varchar2(255)) AS RATING_ACTION,
|
||||
CAST(NULL as varchar2(255)) AS RATING_ACTION_DATE,
|
||||
'C2D_EA' AS SOURCE,
|
||||
CAST(NULL as varchar2(255)) AS RATING_OTHER_TYPE,
|
||||
--IIF($$Var_m_main_load='Y',null,setvariable($$Var_m_dwh_subprocess_load_set_key, null)),
|
||||
CAST(NULL AS number) AS INDEP_SUBPROCESS_FK
|
||||
FROM
|
||||
AGG_MAX_NUM_EQUIVALENT
|
||||
@@ -0,0 +1,189 @@
|
||||
{{ config(
|
||||
materialized = "incremental",
|
||||
incremental_strategy="append",
|
||||
schema = "DW_TMP",
|
||||
alias = "TE_INSTITUTION_RATING_LT",
|
||||
tags = ["m_DWH_RAT_TE_INST_RATING_SF_C2D_EA_ELIGIBLE_ASSET", "A_TASK_HISTORY_TARGET_insert"],
|
||||
pre_hook = "{{ control_model_start() }}",
|
||||
post_hook = "{{ control_model_end('TRG') }}"
|
||||
) }}
|
||||
|
||||
WITH SOURCE_QUALIFIER AS (
|
||||
--IIF(NOT ISNULL(ISS_CODE_TYPE),ISS_CODE_TYPE,'NCB')
|
||||
--decode(true,v_ISS_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_ISS_CODE_TYPE)
|
||||
SELECT
|
||||
CASE
|
||||
WHEN SQ.ISS_CODE_TYPE IS NULL THEN 'NCB'
|
||||
WHEN SQ.ISS_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
|
||||
ELSE SQ.ISS_CODE_TYPE
|
||||
END AS ISS_CODE_TYPE,
|
||||
SQ.ISS_CODE_VALUE,
|
||||
--IIF(NOT ISNULL(GUAR_CODE_TYPE),GUAR_CODE_TYPE,'NCB')
|
||||
--decode(true,v_GUAR_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_GUAR_CODE_TYPE)
|
||||
CASE
|
||||
WHEN SQ.GUAR_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
|
||||
WHEN SQ.GUAR_CODE_TYPE IS NULL THEN 'NCB'
|
||||
ELSE SQ.GUAR_CODE_TYPE
|
||||
END AS GUAR_CODE_TYPE,
|
||||
SQ.GUAR_CODE_VALUE,
|
||||
SQ.ISS_LT_RATING_ID,
|
||||
SQ.ISS_ST_RATING_ID,
|
||||
SQ.GUAR_LT_RATING_ID,
|
||||
SQ.A_WORKFLOW_HISTORY_KEY
|
||||
FROM
|
||||
{{ source("sf_c2d", "EA_ELIGIBLE_ASSET") }} SQ
|
||||
WHERE SQ.ACTION_TYPE = 'U'
|
||||
),
|
||||
|
||||
EVALUATE_VALUE AS (
|
||||
SELECT * FROM SOURCE_QUALIFIER
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_NO,
|
||||
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_ID --FROM DW_REF_INSTITUTION_CODE_TYPE
|
||||
FROM
|
||||
DW_REF_MAIN.INSTITUTION_CODE_TYPE DW_REF_INSTITUTION_CODE_TYPE
|
||||
WHERE
|
||||
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
|
||||
) LKP_CODE_TYPE_NO ON LKP_CODE_TYPE_NO.CODE_TYPE_ID = UPPER(LTRIM(RTRIM(SOURCE_QUALIFIER.ISS_CODE_TYPE)))
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.INSTITUTION_FK,
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID,
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE --FROM DW_RAR_MU_INSTITUTION_CODE_MAP
|
||||
FROM
|
||||
DW_RAR.MU_INSTITUTION_CODE_MAP DW_RAR_MU_INSTITUTION_CODE_MAP
|
||||
WHERE
|
||||
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
|
||||
) LKP_INSTITUTION_CODE_KEY ON LKP_INSTITUTION_CODE_KEY.CODE_TYPE_NO_ID = LKP_CODE_TYPE_NO.CODE_TYPE_NO
|
||||
AND LKP_INSTITUTION_CODE_KEY.CODE_VALUE = SOURCE_QUALIFIER.ISS_CODE_VALUE
|
||||
),
|
||||
|
||||
MPL_GET_INSTITUTION_CODE_KEY AS (
|
||||
SELECT
|
||||
--iif(isnull(CODE_VALUE),null,Inp_INSTITUTION_FK)
|
||||
CASE
|
||||
WHEN EVALUATE_VALUE.CODE_VALUE IS NULL THEN CAST(NULL AS VARCHAR2(255))
|
||||
ELSE CAST(EVALUATE_VALUE.INSTITUTION_FK AS VARCHAR2(255))
|
||||
END AS INSTITUTION_FK,
|
||||
--iif(isnull(CODE_VALUE),null,inp_CODE_TYPE_NO)
|
||||
CASE
|
||||
WHEN EVALUATE_VALUE.CODE_VALUE IS NULL THEN CAST(NULL AS VARCHAR2(255))
|
||||
ELSE EVALUATE_VALUE.CODE_TYPE_NO
|
||||
END AS CODE_TYPE_NO,
|
||||
--NSTRING udf_clean_CODE_TYPE( inp_CODE_TYPE as string )
|
||||
--:UDF.UDF_CLEAN_CODE_TYPE(inp_CODE_TYPE)
|
||||
--iif(ISNULL(inp_CODE_TYPE) OR LENGTH(:UDF.UDF_TRIM(inp_CODE_TYPE)) = 0, 'NCB', UPPER(:UDF.UDF_TRIM(inp_CODE_TYPE)))
|
||||
--:UDF.UDF_TRIM(inp_CODE_TYPE)
|
||||
--LTRIM(RTRIM(input_string))
|
||||
CASE
|
||||
WHEN EVALUATE_VALUE.ISS_CODE_TYPE IS NULL
|
||||
OR LENGTH(LTRIM(RTRIM(EVALUATE_VALUE.ISS_CODE_TYPE))) = 0 THEN 'NCB'
|
||||
ELSE CAST(
|
||||
UPPER(LTRIM(RTRIM(EVALUATE_VALUE.ISS_CODE_TYPE))) AS varchar2(255))
|
||||
END AS CODE_TYPE,
|
||||
EVALUATE_VALUE.CODE_VALUE,
|
||||
EVALUATE_VALUE.CODE_TYPE_NO_ID,
|
||||
EVALUATE_VALUE.CODE_VALUE AS CODE_VALUE1,
|
||||
EVALUATE_VALUE.ISS_CODE_TYPE,
|
||||
EVALUATE_VALUE.ISS_LT_RATING_ID,
|
||||
EVALUATE_VALUE.ISS_ST_RATING_ID
|
||||
FROM
|
||||
EVALUATE_VALUE
|
||||
),
|
||||
|
||||
FIL_NULL_INSTITUTION_CODE_KEY AS (
|
||||
SELECT
|
||||
MPL.INSTITUTION_FK,
|
||||
MPL.ISS_CODE_TYPE,
|
||||
MPL.CODE_VALUE,
|
||||
MPL.ISS_LT_RATING_ID,
|
||||
MPL.ISS_ST_RATING_ID
|
||||
FROM
|
||||
MPL_GET_INSTITUTION_CODE_KEY MPL
|
||||
WHERE
|
||||
MPL.INSTITUTION_FK IS NOT NULL
|
||||
AND MPL.ISS_LT_RATING_ID IS NOT NULL
|
||||
),
|
||||
|
||||
EXP_MAP_LT_TARGET AS (
|
||||
SELECT
|
||||
FILL_NULL.INSTITUTION_FK,
|
||||
--IIF(SUBSTR(RATING,3,2)='SP','EADB_O_LT_SP',
|
||||
--IIF(SUBSTR(RATING,3,2)='DB','EADB_O_LT_DB',
|
||||
--IIF(SUBSTR(RATING,3,2)='IA','EADB_O_LT_IA',
|
||||
--IIF(SUBSTR(RATING,3,2)='MY','EADB_O_LT_MY',
|
||||
--IIF(SUBSTR(RATING,3,2)='SC','EADB_O_LT_SC',NULL)))))
|
||||
CASE
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'SP' THEN 'EADB_O_LT_SP'
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'DB' THEN 'EADB_O_LT_DB'
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'IA' THEN 'EADB_O_LT_IA'
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'MY' THEN 'EADB_O_LT_MY'
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_LT_RATING_ID, 3, 2)) = 'SC' THEN 'EADB_O_LT_SC'
|
||||
ELSE CAST(NULL AS VARCHAR2(255))
|
||||
END AS RATING_TYPE_FK,
|
||||
--rtrim(ltrim(RATING))
|
||||
RTRIM(LTRIM(FILL_NULL.ISS_LT_RATING_ID)) AS RATING,
|
||||
'A' AS DUMMY
|
||||
FROM
|
||||
FIL_NULL_INSTITUTION_CODE_KEY FILL_NULL
|
||||
),
|
||||
|
||||
LKP_MAIN_RATING AS (
|
||||
SELECT
|
||||
EXP_MAP_LT_TARGET.INSTITUTION_FK,
|
||||
EXP_MAP_LT_TARGET.RATING_TYPE_FK,
|
||||
EXP_MAP_LT_TARGET.RATING,
|
||||
DW_REF_MAIN_RATING.NUMERICAL_EQUIVALENT
|
||||
FROM EXP_MAP_LT_TARGET
|
||||
LEFT JOIN DW_REF_MAIN.RATING DW_REF_MAIN_RATING ON EXP_MAP_LT_TARGET.RATING = DW_REF_MAIN_RATING.RATING_VALUE_CODE
|
||||
WHERE
|
||||
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
|
||||
),
|
||||
|
||||
EXP_GET_RECORD_COUNT_LT AS (
|
||||
SELECT
|
||||
LKP_MAIN_RATING.INSTITUTION_FK,
|
||||
LKP_MAIN_RATING.RATING_TYPE_FK,
|
||||
LKP_MAIN_RATING.NUMERICAL_EQUIVALENT,
|
||||
LKP_MAIN_RATING.RATING,
|
||||
---SETVARIABLE($$Var_m_Start_StartTime,NULL)
|
||||
CAST(NULL as date) AS SNAPSHOT_DATE,
|
||||
'C2D_EA' AS SOURCE,
|
||||
--IIF($$Var_m_main_load='Y',null,setvariable($$Var_m_dwh_subprocess_load_set_key, null)),
|
||||
CAST(NULL AS number) AS INDEP_SUBPROCESS_FK
|
||||
FROM
|
||||
LKP_MAIN_RATING LKP_MAIN_RATING
|
||||
GROUP BY
|
||||
LKP_MAIN_RATING.INSTITUTION_FK,
|
||||
LKP_MAIN_RATING.RATING_TYPE_FK,
|
||||
LKP_MAIN_RATING.NUMERICAL_EQUIVALENT,
|
||||
LKP_MAIN_RATING.RATING
|
||||
ORDER BY
|
||||
LKP_MAIN_RATING.INSTITUTION_FK,
|
||||
LKP_MAIN_RATING.RATING_TYPE_FK,
|
||||
LKP_MAIN_RATING.NUMERICAL_EQUIVALENT
|
||||
)
|
||||
|
||||
SELECT
|
||||
EXP_LT_COUNT.INSTITUTION_FK,
|
||||
EXP_LT_COUNT.RATING_TYPE_FK,
|
||||
CAST(NULL as varchar2(255)) AS SPECIFIC_PROVIDER_NAME,
|
||||
EXP_LT_COUNT.RATING AS VALUE,
|
||||
CAST(NULL as varchar2(255)) AS DATE_,
|
||||
CAST(NULL as varchar2(255)) AS OTHER_NOTES,
|
||||
CAST(NULL as varchar2(255)) AS VALUE_PD,
|
||||
CAST(NULL as varchar2(255)) AS IS_PRELIMINARY,
|
||||
EXP_LT_COUNT.NUMERICAL_EQUIVALENT,
|
||||
CAST(NULL as varchar2(255)) AS OUTLOOK_VALUE,
|
||||
CAST(NULL as varchar2(255)) AS OUTLOOK_DATE,
|
||||
CAST(NULL as varchar2(255)) AS WATCHLIST_VALUE,
|
||||
CAST(NULL as varchar2(255)) AS WATCHLIST_DATE,
|
||||
EXP_LT_COUNT.SNAPSHOT_DATE,
|
||||
CAST(NULL as varchar2(255)) AS RATING_ACTION,
|
||||
CAST(NULL as varchar2(255)) AS RATING_ACTION_DATE,
|
||||
EXP_LT_COUNT.SOURCE,
|
||||
CAST(NULL as varchar2(255)) AS RATING_OTHER_TYPE,
|
||||
EXP_LT_COUNT.INDEP_SUBPROCESS_FK
|
||||
FROM
|
||||
EXP_GET_RECORD_COUNT_LT EXP_LT_COUNT
|
||||
@@ -0,0 +1,184 @@
|
||||
{{ config(
|
||||
materialized = "incremental",
|
||||
incremental_strategy="append",
|
||||
schema = "DW_TMP",
|
||||
alias = "TE_INSTITUTION_RATING_ST",
|
||||
tags = ["m_DWH_RAT_TE_INST_RATING_SF_C2D_EA_ELIGIBLE_ASSET", "A_TASK_HISTORY_TARGET_insert"],
|
||||
pre_hook = "{{ control_model_start() }}",
|
||||
post_hook = "{{ control_model_end('TRG') }}"
|
||||
) }}
|
||||
|
||||
WITH SOURCE_QUALIFIER AS (
|
||||
--IIF(NOT ISNULL(ISS_CODE_TYPE),ISS_CODE_TYPE,'NCB')
|
||||
--decode(true,v_ISS_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_ISS_CODE_TYPE)
|
||||
SELECT
|
||||
CASE
|
||||
WHEN SQ.ISS_CODE_TYPE IS NULL THEN 'NCB'
|
||||
WHEN SQ.ISS_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
|
||||
ELSE SQ.ISS_CODE_TYPE
|
||||
END AS ISS_CODE_TYPE,
|
||||
SQ.ISS_CODE_VALUE,
|
||||
--IIF(NOT ISNULL(GUAR_CODE_TYPE),GUAR_CODE_TYPE,'NCB')
|
||||
--decode(true,v_GUAR_CODE_TYPE='RIAD','RIAD_ID_FROM_C2D',v_GUAR_CODE_TYPE)
|
||||
CASE
|
||||
WHEN SQ.GUAR_CODE_TYPE = 'RIAD' THEN 'RIAD_ID_FROM_C2D'
|
||||
WHEN SQ.GUAR_CODE_TYPE IS NULL THEN 'NCB'
|
||||
ELSE SQ.GUAR_CODE_TYPE
|
||||
END AS GUAR_CODE_TYPE,
|
||||
SQ.GUAR_CODE_VALUE,
|
||||
SQ.ISS_LT_RATING_ID,
|
||||
SQ.ISS_ST_RATING_ID,
|
||||
SQ.GUAR_LT_RATING_ID,
|
||||
SQ.A_WORKFLOW_HISTORY_KEY
|
||||
FROM
|
||||
{{ source("sf_c2d", "EA_ELIGIBLE_ASSET") }} SQ
|
||||
WHERE SQ.ACTION_TYPE = 'U'
|
||||
),
|
||||
|
||||
EVALUATE_VALUE AS (
|
||||
SELECT * FROM SOURCE_QUALIFIER
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_NO,
|
||||
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_ID --FROM DW_REF_INSTITUTION_CODE_TYPE
|
||||
FROM
|
||||
DW_REF_MAIN.INSTITUTION_CODE_TYPE DW_REF_INSTITUTION_CODE_TYPE
|
||||
WHERE
|
||||
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
|
||||
) LKP_CODE_TYPE_NO ON LKP_CODE_TYPE_NO.CODE_TYPE_ID = UPPER(LTRIM(RTRIM(SOURCE_QUALIFIER.ISS_CODE_TYPE)))
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.INSTITUTION_FK,
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID,
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE --FROM DW_RAR_MU_INSTITUTION_CODE_MAP
|
||||
FROM
|
||||
DW_RAR.MU_INSTITUTION_CODE_MAP DW_RAR_MU_INSTITUTION_CODE_MAP
|
||||
WHERE
|
||||
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
|
||||
) LKP_INSTITUTION_CODE_KEY ON LKP_INSTITUTION_CODE_KEY.CODE_TYPE_NO_ID = LKP_CODE_TYPE_NO.CODE_TYPE_NO
|
||||
AND LKP_INSTITUTION_CODE_KEY.CODE_VALUE = SOURCE_QUALIFIER.ISS_CODE_VALUE
|
||||
),
|
||||
|
||||
MPL_GET_INSTITUTION_CODE_KEY AS (
|
||||
SELECT
|
||||
--iif(isnull(CODE_VALUE),null,Inp_INSTITUTION_FK)
|
||||
CASE
|
||||
WHEN EVALUATE_VALUE.CODE_VALUE IS NULL THEN CAST(NULL AS VARCHAR2(255))
|
||||
ELSE CAST(EVALUATE_VALUE.INSTITUTION_FK AS VARCHAR2(255))
|
||||
END AS INSTITUTION_FK,
|
||||
--iif(isnull(CODE_VALUE),null,inp_CODE_TYPE_NO)
|
||||
CASE
|
||||
WHEN EVALUATE_VALUE.CODE_VALUE IS NULL THEN CAST(NULL AS VARCHAR2(255))
|
||||
ELSE EVALUATE_VALUE.CODE_TYPE_NO
|
||||
END AS CODE_TYPE_NO,
|
||||
--NSTRING udf_clean_CODE_TYPE( inp_CODE_TYPE as string )
|
||||
--:UDF.UDF_CLEAN_CODE_TYPE(inp_CODE_TYPE)
|
||||
--iif(ISNULL(inp_CODE_TYPE) OR LENGTH(:UDF.UDF_TRIM(inp_CODE_TYPE)) = 0, 'NCB', UPPER(:UDF.UDF_TRIM(inp_CODE_TYPE)))
|
||||
--:UDF.UDF_TRIM(inp_CODE_TYPE)
|
||||
--LTRIM(RTRIM(input_string))
|
||||
CASE
|
||||
WHEN EVALUATE_VALUE.ISS_CODE_TYPE IS NULL
|
||||
OR LENGTH(LTRIM(RTRIM(EVALUATE_VALUE.ISS_CODE_TYPE))) = 0 THEN 'NCB'
|
||||
ELSE CAST(
|
||||
UPPER(LTRIM(RTRIM(EVALUATE_VALUE.ISS_CODE_TYPE))) AS varchar2(255))
|
||||
END AS GUAR_CODE_TYPE,
|
||||
EVALUATE_VALUE.CODE_VALUE,
|
||||
EVALUATE_VALUE.CODE_TYPE_NO_ID,
|
||||
EVALUATE_VALUE.CODE_VALUE AS CODE_VALUE1,
|
||||
EVALUATE_VALUE.ISS_CODE_TYPE,
|
||||
EVALUATE_VALUE.ISS_LT_RATING_ID,
|
||||
EVALUATE_VALUE.ISS_ST_RATING_ID
|
||||
FROM
|
||||
EVALUATE_VALUE
|
||||
),
|
||||
|
||||
FIL_NULL_INSTITUTION_CODE_KEY AS (
|
||||
SELECT
|
||||
MPL.INSTITUTION_FK,
|
||||
MPL.ISS_CODE_TYPE,
|
||||
MPL.CODE_VALUE,
|
||||
MPL.ISS_LT_RATING_ID,
|
||||
MPL.ISS_ST_RATING_ID
|
||||
FROM
|
||||
MPL_GET_INSTITUTION_CODE_KEY MPL
|
||||
WHERE
|
||||
MPL.INSTITUTION_FK IS NOT NULL
|
||||
AND MPL.ISS_ST_RATING_ID IS NOT NULL
|
||||
),
|
||||
|
||||
EXP_MAP_ST_TARGET AS (
|
||||
SELECT
|
||||
FILL_NULL.INSTITUTION_FK,
|
||||
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='SP','EADB_O_ST_SP',
|
||||
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='DB','EADB_O_ST_DB',
|
||||
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='IA','EADB_O_ST_IA',
|
||||
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='MY','EADB_O_ST_MY',
|
||||
--IIF(SUBSTR(ISS_ST_RATING_ID3,3,2)='SC','EADB_O_ST_SC',NULL)))))
|
||||
CASE
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'SP' THEN 'EADB_O_ST_SP'
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'DB' THEN 'EADB_O_ST_DB'
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'IA' THEN 'EADB_O_ST_IA'
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'MY' THEN 'EADB_O_ST_MY'
|
||||
WHEN (SUBSTR(FILL_NULL.ISS_ST_RATING_ID, 3, 2)) = 'SC' THEN 'EADB_O_ST_SC'
|
||||
ELSE CAST(NULL AS VARCHAR2(255))
|
||||
END AS RATING_TYPE_FK,
|
||||
--rtrim(ltrim(RATING))
|
||||
RTRIM(LTRIM(FILL_NULL.ISS_ST_RATING_ID)) AS RATING,
|
||||
'A' AS DUMMY
|
||||
FROM
|
||||
FIL_NULL_INSTITUTION_CODE_KEY FILL_NULL
|
||||
),
|
||||
|
||||
LOOKUP AS (
|
||||
SELECT * FROM EXP_MAP_ST_TARGET
|
||||
LEFT JOIN DW_REF_MAIN.RATING DW_REF_MAIN_RATING ON EXP_MAP_ST_TARGET.RATING = DW_REF_MAIN_RATING.RATING_VALUE_CODE
|
||||
WHERE
|
||||
A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')
|
||||
),
|
||||
|
||||
EXP_GET_RECORD_COUNT_ST AS (
|
||||
SELECT
|
||||
LOOKUP.INSTITUTION_FK,
|
||||
LOOKUP.RATING_TYPE_FK,
|
||||
LOOKUP.NUMERICAL_EQUIVALENT,
|
||||
LOOKUP.RATING,
|
||||
---SETVARIABLE($$Var_m_Start_StartTime,NULL)
|
||||
CAST(NULL as date) AS SNAPSHOT_DATE,
|
||||
'C2D_EA' AS SOURCE,
|
||||
--IIF($$Var_m_main_load='Y',null,setvariable($$Var_m_dwh_subprocess_load_set_key, null)),
|
||||
CAST(NULL AS number) AS INDEP_SUBPROCESS_FK
|
||||
FROM
|
||||
LOOKUP
|
||||
GROUP BY
|
||||
LOOKUP.INSTITUTION_FK,
|
||||
LOOKUP.RATING_TYPE_FK,
|
||||
LOOKUP.NUMERICAL_EQUIVALENT,
|
||||
LOOKUP.RATING
|
||||
ORDER BY
|
||||
LOOKUP.INSTITUTION_FK,
|
||||
LOOKUP.RATING_TYPE_FK,
|
||||
LOOKUP.NUMERICAL_EQUIVALENT
|
||||
)
|
||||
|
||||
SELECT
|
||||
EXP_ST_COUNT.INSTITUTION_FK,
|
||||
EXP_ST_COUNT.RATING_TYPE_FK,
|
||||
CAST(NULL as varchar2(255)) AS SPECIFIC_PROVIDER_NAME,
|
||||
EXP_ST_COUNT.RATING AS VALUE,
|
||||
CAST(NULL as varchar2(255)) AS DATE_,
|
||||
CAST(NULL as varchar2(255)) AS OTHER_NOTES,
|
||||
CAST(NULL as varchar2(255)) AS VALUE_PD,
|
||||
CAST(NULL as varchar2(255)) AS IS_PRELIMINARY,
|
||||
EXP_ST_COUNT.NUMERICAL_EQUIVALENT,
|
||||
CAST(NULL as varchar2(255)) AS OUTLOOK_VALUE,
|
||||
CAST(NULL as varchar2(255)) AS OUTLOOK_DATE,
|
||||
CAST(NULL as varchar2(255)) AS WATCHLIST_VALUE,
|
||||
CAST(NULL as varchar2(255)) AS WATCHLIST_DATE,
|
||||
EXP_ST_COUNT.SNAPSHOT_DATE,
|
||||
CAST(NULL as varchar2(255)) AS RATING_ACTION,
|
||||
CAST(NULL as varchar2(255)) AS RATING_ACTION_DATE,
|
||||
CAST(NULL as varchar2(255)) AS SOURCE,
|
||||
CAST(NULL as varchar2(255)) AS RATING_OTHER_TYPE,
|
||||
EXP_ST_COUNT.INDEP_SUBPROCESS_FK
|
||||
FROM
|
||||
EXP_GET_RECORD_COUNT_ST EXP_ST_COUNT
|
||||
@@ -0,0 +1,78 @@
|
||||
{{ config(materialized='incremental',
|
||||
incremental_strategy='append',
|
||||
unique_key='ASSET_FK',
|
||||
pre_hook="{{ control_model_start() }}",
|
||||
post_hook="{{ control_model_end('TRG') }}",
|
||||
alias = 'TE_ASSET_ROLE_INSTITUTION_test',
|
||||
tags = ['m_DWH_ROLE_TE_ASSET_SF_C2D_EA_INSTROLES_LOAD', 'A_TASK_HISTORY_TARGET_insert'],
|
||||
schema = 'DW_TMP') }}
|
||||
|
||||
WITH ASSET_VALUES AS (
|
||||
SELECT CASE
|
||||
WHEN SQ.CODE_VALUE IS NULL THEN NULL
|
||||
ELSE LKP_INSTITUTION_CODE_KEY.INSTITUTION_FK
|
||||
END AS INSTITUTION_FK,
|
||||
CASE
|
||||
WHEN ROLE_FK='GUA_N' THEN 'GUA'
|
||||
ELSE ROLE_FK
|
||||
END AS ROLE_FK,
|
||||
'ISIN' AS CODE_TYPE_ASSET,
|
||||
ISIN,
|
||||
RTRIM(LTRIM(ISIN)) AS CODE_VALUE_ASSET,
|
||||
ROLE,
|
||||
GUAR_ASSESSMENT,
|
||||
RESERVE_FUND_THRESHOLDS_EXCEED,
|
||||
'C2D_EA' AS SOURCE
|
||||
FROM {{ ref("m_DWH_ROLE_TE_ASSET_SF_C2D_EA_INSTROLES_LOAD_SQ") }} SQ
|
||||
LEFT JOIN (SELECT DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_NO AS CODE_TYPE_NO,
|
||||
DW_REF_INSTITUTION_CODE_TYPE.CODE_TYPE_ID AS CODE_TYPE_ID
|
||||
FROM DW_REF_MAIN.INSTITUTION_CODE_TYPE DW_REF_INSTITUTION_CODE_TYPE
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) LKP_CODE_TYPE_NO ON LKP_CODE_TYPE_NO.CODE_TYPE_ID=UPPER(LTRIM(RTRIM(SQ.CODE_TYPE)))
|
||||
LEFT JOIN (SELECT DW_RAR_MU_INSTITUTION_CODE_MAP.INSTITUTION_FK AS INSTITUTION_FK,
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_TYPE_NO_ID AS CODE_TYPE_NO_ID,
|
||||
DW_RAR_MU_INSTITUTION_CODE_MAP.CODE_VALUE AS CODE_VALUE
|
||||
FROM DW_RAR.MU_INSTITUTION_CODE_MAP DW_RAR_MU_INSTITUTION_CODE_MAP
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) LKP_INSTITUTION_CODE_KEY ON LKP_INSTITUTION_CODE_KEY.CODE_TYPE_NO_ID=LKP_CODE_TYPE_NO.CODE_TYPE_NO
|
||||
AND LKP_INSTITUTION_CODE_KEY.CODE_VALUE=SQ.CODE_VALUE
|
||||
WHERE INSTITUTION_FK IS NOT NULL
|
||||
),
|
||||
|
||||
|
||||
TRANS AS (
|
||||
SELECT DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK AS ASSET_FK,
|
||||
AV.INSTITUTION_FK,
|
||||
AV.ROLE_FK,
|
||||
AV.ROLE,
|
||||
AV.GUAR_ASSESSMENT,
|
||||
AV.RESERVE_FUND_THRESHOLDS_EXCEED,
|
||||
AV.SOURCE,
|
||||
ROW_NUMBER() OVER (PARTITION BY DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK, AV.INSTITUTION_FK, AV.ROLE_FK, AV.SOURCE ORDER BY DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK ASC ,AV.INSTITUTION_FK ASC ,AV.ROLE_FK ASC ,AV.ROLE ASC ,AV.SOURCE ASC) AS rn
|
||||
FROM ASSET_VALUES AV
|
||||
LEFT JOIN (SELECT CODE_TYPE_NO, CODE_TYPE_ID
|
||||
FROM DW_REF_MAIN.ASSET_CODE_TYPE
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00','mm/dd/yyyy HH24:MI:SS')) DW_REF_ASSET_CODE_TYPE
|
||||
ON DW_REF_ASSET_CODE_TYPE.CODE_TYPE_ID = UPPER(RTRIM(LTRIM(AV.CODE_TYPE_ASSET)))
|
||||
LEFT JOIN (SELECT ASSET_FK , CODE_TYPE_NO_ID, CODE_VALUE
|
||||
FROM DW_RAR.MU_ASSET_CODE_MAP
|
||||
WHERE A_VALID_TO = To_Date('12/31/9999 00:00:00', 'mm/dd/yyyy HH24:MI:SS')) DW_RAR_MU_ASSET_CODE_MAP
|
||||
ON DW_RAR_MU_ASSET_CODE_MAP.CODE_TYPE_NO_ID = DW_REF_ASSET_CODE_TYPE.CODE_TYPE_NO
|
||||
AND DW_RAR_MU_ASSET_CODE_MAP.CODE_VALUE = RTRIM(LTRIM(AV.CODE_VALUE_ASSET))
|
||||
WHERE DW_RAR_MU_ASSET_CODE_MAP.ASSET_FK IS NOT NULL
|
||||
)
|
||||
|
||||
|
||||
SELECT TRANS.ASSET_FK,
|
||||
TRANS.INSTITUTION_FK,
|
||||
TRANS.ROLE_FK,
|
||||
TRANS.ROLE AS SUBROLE_ID,
|
||||
TRANS.GUAR_ASSESSMENT,
|
||||
TRANS.RESERVE_FUND_THRESHOLDS_EXCEED,
|
||||
TRANS.SOURCE,
|
||||
CAST(NULL AS VARCHAR2(255)) AS COVER_PERCENT,
|
||||
CAST(NULL AS VARCHAR2(255)) AS INDEP_SUBPROCESS_FK
|
||||
FROM DW_TMP.TE_ASSET_ROLE_INSTITUTION_test DW_TMP_TE_ASSET_ROLE_INSTITUTITION
|
||||
RIGHT JOIN TRANS ON DW_TMP_TE_ASSET_ROLE_INSTITUTITION.ASSET_FK = TRANS.ASSET_FK
|
||||
AND DW_TMP_TE_ASSET_ROLE_INSTITUTITION.INSTITUTION_FK = TRANS.INSTITUTION_FK
|
||||
AND DW_TMP_TE_ASSET_ROLE_INSTITUTITION.ROLE_FK = TRANS.ROLE_FK
|
||||
AND DW_TMP_TE_ASSET_ROLE_INSTITUTITION.SOURCE = TRANS.SOURCE
|
||||
WHERE DW_TMP_TE_ASSET_ROLE_INSTITUTITION.ASSET_FK IS NULL AND rn=1
|
||||
Reference in New Issue
Block a user