s4/ProfitCenterHierarchyFlattened.sql (48 lines of code) (raw):
--The granularity of this query is Client,Setclass,Subclass,HierarchyName(hierabase),
--ProfitCenterNode,ProfitCenter(prctr),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
ProfitCenters.mandt AS Client_MANDT,
ProfitCenters.setclass AS HierarchyClass_SETCLASS,
ProfitCenters.subclass AS HierarchySubClass_SUBCLASS,
ProfitCenters.hiername AS HierarchyType_HIERBASE,
LanguageKey.LanguageKey_SPRAS,
ProfitCenters.profitcenter AS ProfitCenter_PRCTR,
ProfitCenters.node AS ProfitCenterNode,
ProfitCenters.parent AS ParentNode,
PCParentText.SetName_SETNAME AS ParentNodeText,
--ProfittCenterNodeTextLongText_LTEXT) is a language dependent field.
COALESCE(PCNodeText.SetName_SETNAME, PCText.LongText_LTEXT) AS ProfitCenterNodeText,
ProfitCenters.level AS Level,
ProfitCenters.isleafnode AS IsLeafNode
FROM
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.profit_centers` AS ProfitCenters
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.ProfitCenterHierarchiesMD` AS PCParentText
ON
ProfitCenters.mandt = PCParentText.Client_MANDT
AND ProfitCenters.setclass = PCParentText.SetClass_SETCLASS
AND ProfitCenters.subclass = PCParentText.OrganizationalUnit_SUBCLASS
AND CAST(PCParentText.NodeNumber_SUCC AS STRING) = ProfitCenters.parent
AND ProfitCenters.hiername = PCParentText.SetName_HIERBASE
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.ProfitCenterHierarchiesMD` AS PCNodeText
ON
ProfitCenters.mandt = PCNodeText.Client_MANDT
AND ProfitCenters.setclass = PCNodeText.SetClass_SETCLASS
AND ProfitCenters.subclass = PCNodeText.OrganizationalUnit_SUBCLASS
AND CAST(PCNodeText.NodeNumber_SUCC AS STRING) = ProfitCenters.node
AND ProfitCenters.hiername = PCNodeText.SetName_HIERBASE
CROSS JOIN LanguageKey
LEFT JOIN
`{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.ProfitCentersMD` AS PCText
ON
ProfitCenters.mandt = PCText.Client_MANDT
AND ProfitCenters.subclass = PCText.ControllingArea_KOKRS
AND ProfitCenters.node = PCText.ProfitCenter_PRCTR
AND PCText.Language_SPRAS = LanguageKey.LanguageKey_SPRAS
AND PCText.ValidToDate_DATBI = '9999-12-31'