s4/FSVHierarchyFlattened.sql (46 lines of code) (raw):

--The granularity of this query is Client,Chart of accounts,Hierarchy name, --GLNode,GLAccount,Language Key. --## CORTEX-CUSTOMER Please filter on HierarchyName 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 FSV.mandt AS Client_MANDT, FSV.chartofaccounts AS ChartOfAccounts, FSV.hiername AS HierarchyName, LanguageKey.LanguageKey_SPRAS, FSV.glaccount AS GeneralLedgerAccount, FSV.node AS GLNode, FSV.parent AS ParentNode, --The following text fields are language dependent. GLParentText.HierarchyNodeDescription_NODETXT AS ParentNodeText, COALESCE(GLNodeText.HierarchyNodeDescription_NODETXT, GLText.GlAccountLongText_TXT50) AS GLNodeText, FSV.level AS Level, FSV.isleafnode AS IsLeafNode FROM `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.fsv_glaccounts` AS FSV CROSS JOIN LanguageKey LEFT JOIN `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.FSVTextsMD` AS GLNodeText ON FSV.mandt = GLNodeText.Client_MANDT AND FSV.hiername = GLNodeText.HierarchyID_HRYID AND FSV.HierarchyVersion = GLNodeText.HierarchyVersion_HRYVER AND FSV.Node = GLNodeText.HierarchyNode_HRYNODE AND GLNodeText.LanguageKey_SPRAS = LanguageKey.LanguageKey_SPRAS LEFT JOIN `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.GLAccountsMD` AS GLText ON FSV.mandt = GLText.Client_MANDT AND FSV.chartofaccounts = GLText.ChartOfAccounts_KTOPL AND FSV.nodevalue = GLText.GlAccountNumber_SAKNR AND GLText.Language_SPRAS = LanguageKey.LanguageKey_SPRAS LEFT JOIN `{{ project_id_tgt }}.{{ dataset_reporting_tgt }}.FSVTextsMD` AS GLParentText ON FSV.mandt = GLParentText.Client_MANDT AND FSV.hiername = GLParentText.HierarchyID_HRYID AND FSV.HierarchyVersion = GLParentText.HierarchyVersion_HRYVER AND FSV.Parent = GLParentText.HierarchyNode_HRYNODE AND GLParentText.LanguageKey_SPRAS = LanguageKey.LanguageKey_SPRAS