-- Databricks notebook source -- ============================================================================= -- Purpose : Build the flattened IMS NFC level 1-3 hierarchy. -- Source : dwd.dwd_ims_td_new_form_class -- Target : dwd.dwd_ims_nfc_hierarchy -- Grain : One row per hierarchy path rooted at NFC1_CODE; lower levels may be null. -- Write mode : Full refresh (INSERT OVERWRITE). -- Downstream : dwd.dwd_ims_td_pack_property, dws.dws_ims_td_nfc_cn -- Notes : Parent-code matching is preserved from the legacy script. -- ============================================================================= INSERT OVERWRITE TABLE dwd.dwd_ims_nfc_hierarchy ( NFC1_ID, NFC1_CODE, NFC1_DES, NFC2_ID, NFC2_CODE, NFC2_DES, NFC3_ID, NFC3_CODE, NFC3_DES ) WITH new_form_class AS ( SELECT newformclass_id, newformclass_code, newformclass_name, newformclass_level FROM dwd.dwd_ims_td_new_form_class ), nfc_level_1 AS ( SELECT newformclass_id AS nfc1_id, newformclass_code AS nfc1_code, newformclass_name AS nfc1_des FROM new_form_class WHERE newformclass_level = '1' ), nfc_level_2 AS ( SELECT newformclass_id AS nfc2_id, newformclass_code AS nfc2_code, newformclass_name AS nfc2_des FROM new_form_class WHERE newformclass_level = '2' ), nfc_level_3 AS ( SELECT newformclass_id AS nfc3_id, newformclass_code AS nfc3_code, newformclass_name AS nfc3_des FROM new_form_class WHERE newformclass_level = '3' ) SELECT nfc_level_1.nfc1_id, nfc_level_1.nfc1_code, nfc_level_1.nfc1_des, nfc_level_2.nfc2_id, nfc_level_2.nfc2_code, nfc_level_2.nfc2_des, nfc_level_3.nfc3_id, nfc_level_3.nfc3_code, nfc_level_3.nfc3_des FROM nfc_level_1 LEFT JOIN nfc_level_2 ON nfc_level_1.nfc1_code = LEFT(nfc_level_2.nfc2_code, 1) LEFT JOIN nfc_level_3 ON nfc_level_2.nfc2_code = LEFT(nfc_level_3.nfc3_code, 2) ;