Files
mars-elt/dbt/snapshots/m_DWH_FXCD_NH_F_ISSUER.sql
Grzegorz Michalski 2c225d68ac init
2026-03-02 09:47:35 +01:00

70 lines
2.9 KiB
SQL

{% snapshot m_DWH_FXCD_NH_F_ISSUER %}
{{
config(
target_schema='dw_rar',
alias = 'NH_F_ISSUER_MARS',
unique_key=['ISSUER_ID'],
strategy='check',
check_cols=[
'ENTITY_ID',
'ACTIVE_FLAG',
'ISSUER_COMMENT',
'OFM_ISSUER_LMT',
'OF_MANUAL_FLAG',
'GLOBAL_LMT_AMNT',
'MANUAL_GLOBAL_LMT_FLAG',
'OF_ISSUER_CATEGORY',
'FR_ISSUER_CATEGORY',
'ISSUER_LMT',
'FR_MANUAL_FLAG',
'NCB_USD_LAMBDA',
'ART_101_FLAG',
'UPLIFT_IMPLIED_RATING',
'LAMBDA_MANUAL_FLAG',
'CHANGE_DESCRIPTION',
'LT_FRM_LIMIT_RATIO',
'LT_FRM_LIMIT_RATIO_MANUAL_FLAG'
],
hard_deletes='invalidate',
dbt_valid_to_current="TIMESTAMP '9999-12-31 00:00:00'",
snapshot_meta_column_names={
'dbt_valid_from': 'A_VALID_FROM',
'dbt_valid_to': 'A_VALID_TO',
'dbt_updated_at': 'UPDATED_AT',
'dbt_scd_id': 'SCD_ID'
},
COLUMN_TYPES={
'A_VALID_FROM': 'DATE',
'A_VALID_TO': 'DATE'
},
tags=["m_DWH_FXCD_NH_F_ISSUER"]
)
}}
SELECT DISTINCT
(SELECT COALESCE(MAX(A_KEY), 0) FROM {{ this }}) + ROW_NUMBER() OVER (ORDER BY 1) as A_KEY,
CAST({{ get_workflow_history_key() }} AS NUMBER(38,0)) AS A_DWH_LOAD_SET_FK,
CAST(ISSUER_ID AS NUMBER(28,0)) AS ISSUER_ID,
CAST(ENTITY_ID AS NUMBER(28,0)) AS ENTITY_ID,
CAST({{ clean_boolean_fxcd('ACTIVE_FLAG') }} AS CHAR(1 CHAR)) AS ACTIVE_FLAG,
CAST(ISSUER_COMMENT AS VARCHAR2(4000 CHAR)) AS ISSUER_COMMENT,
CAST(OFM_ISSUER_LMT AS NUMBER(28,10)) AS OFM_ISSUER_LMT,
CAST({{ clean_boolean_fxcd('OF_MANUAL_FLAG') }} AS VARCHAR2(1 CHAR)) AS OF_MANUAL_FLAG,
CAST(GLOBAL_LMT_AMNT AS NUMBER(28,10)) AS GLOBAL_LMT_AMNT,
CAST({{ clean_boolean_fxcd('MANUAL_GLOBAL_LMT_FLAG') }} AS CHAR(1 CHAR)) AS MANUAL_GLOBAL_LMT_FLAG,
CAST(OF_ISSUER_CATEGORY AS VARCHAR2(5 CHAR)) AS OF_ISSUER_CATEGORY,
CAST(FR_ISSUER_CATEGORY AS VARCHAR2(5 CHAR)) AS FR_ISSUER_CATEGORY,
CAST(ISSUER_LMT AS NUMBER(28,10)) AS ISSUER_LMT,
CAST({{ clean_boolean_fxcd('FR_MANUAL_FLAG') }} AS CHAR(1 CHAR)) AS FR_MANUAL_FLAG,
CAST(NCB_USD_LAMBDA AS NUMBER(28,10)) AS NCB_USD_LAMBDA,
CAST(ART_101_FLAG AS CHAR(1 CHAR)) AS ART_101_FLAG,
CAST(UPLIFT_IMPLIED_RATING AS VARCHAR2(4 CHAR)) AS UPLIFT_IMPLIED_RATING,
CAST({{ clean_boolean_fxcd('LAMBDA_MANUAL_FLAG') }} AS VARCHAR2(1 CHAR)) AS LAMBDA_MANUAL_FLAG,
CAST(CHANGE_DESCRIPTION AS VARCHAR2(256 CHAR)) AS CHANGE_DESCRIPTION,
CAST(LT_FRM_LIMIT_RATIO AS NUMBER(28,10)) AS LT_FRM_LIMIT_RATIO,
CAST({{ clean_boolean_fxcd('LT_FRM_LIMIT_RATIO_MANUAL_FLAG') }} AS VARCHAR2(1 CHAR)) AS LT_FRM_LIMIT_RATIO_MANUAL_FLAG
FROM
{{ source('ods', 'F_ISSUER') }}
WHERE
A_WORKFLOW_HISTORY_KEY = {{ filter_workflow_history_max_key("w_ODS_FXCD_F_ISSUER",get_main_task_name(model.name))}}
{% endsnapshot %}