s4/CostCenterHierarchyFlattened.sql (48 lines of code) (raw):

--The granularity of this query is Client,Setclass,Subclass,HierarchyName(hierabase), --CostCenterNode,CostCenter(kostl),Language Key. --## CORTEX-CUSTOMER Please filter on Hierbase in case of multiple hierarchies flattened in your system. WITH LanguageKey AS ( SELECT LanguageKey_SPRAS FROM `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.Languages_T002` WHERE LanguageKey_SPRAS IN UNNEST({{ sap_languages }}) ) SELECT CostCenters.mandt AS Client_MANDT, CostCenters.setclass AS HierarchyClass_SETCLASS, CostCenters.subclass AS HierarchySubClass_SUBCLASS, CostCenters.hiername AS HierarchyType_HIERBASE, LanguageKey.LanguageKey_SPRAS, CostCenters.costcenter AS CostCenter_KOSTL, CostCenters.node AS CostCenterNode, CostCenters.parent AS ParentNode, CCParentText.SetName_SETNAME AS ParentNodeText, --CostCenterNodeText(Description_LTEXT) is a language dependent field. COALESCE(CCNodeText.SetName_SETNAME, CCText.Description_LTEXT) AS CostCenterNodeText, CostCenters.level AS Level, CostCenters.isleafnode AS IsLeafNode FROM `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.cost_centers` AS CostCenters LEFT JOIN `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.CostCenterHierarchiesMD` AS CCParentText ON CostCenters.mandt = CCParentText.Client_MANDT AND CostCenters.setclass = CCParentText.SetClass_SETCLASS AND CostCenters.subclass = CCParentText.OrganizationalUnit_SUBCLASS AND CAST(CCParentText.NodeNumber_SUCC AS STRING) = CostCenters.parent AND CostCenters.hiername = CCParentText.SetName_HIERBASE LEFT JOIN `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.CostCenterHierarchiesMD` AS CCNodeText ON CostCenters.mandt = CCNodeText.Client_MANDT AND CostCenters.setclass = CCNodeText.SetClass_SETCLASS AND CostCenters.subclass = CCNodeText.OrganizationalUnit_SUBCLASS AND CAST(CCNodeText.NodeNumber_SUCC AS STRING) = CostCenters.node AND CostCenters.hiername = CCNodeText.SetName_HIERBASE CROSS JOIN LanguageKey LEFT JOIN `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.CostCentersMD` AS CCText ON CostCenters.mandt = CCText.Client_MANDT AND CostCenters.subclass = CCText.ControllingArea_KOKRS AND CostCenters.node = CCText.CostCenter_KOSTL AND CCText.Language_SPRAS = LanguageKey.LanguageKey_SPRAS AND CCText.ValidTo_DATBI = '9999-12-31'