Я пытаюсь сделать Power Pivot Report.
В отчете у меня есть 5 экземпляров одной и той же иерархии, которая попадает в таблицу фактов на разных FK.
Например. базовая иерархия - это иерархия организационных единиц, связанная с родителями и детьми.
Состав:
NodeKey | Node | Parent |
------------------------------------------
1 | Accountant | Finance |
2 | Finance | Central Admin. |
2 | Italy-Branch | EU Cost Center |
Он присоединяется к Факту как «Владелец», «Репортер», «Местоположение», «Ближе», «Рецензент».
Факт:
Fact Key | dwh_Owner_Key |dwh_Location_Key|
-------------------------------------------
1 | 1 | 2 |
2 | 1 | 2 |
NodeKey = dwh_Owner_Key
NodeKey = dwh_Location_Key
- Я загружал таблицу в мою модель пять раз.
- Я переименовал каждую таблицу в соответствии с ключами фактов, к которым они присоединяются.
В моей модели Power Pivot я выровнял иерархию, добавив столбцы
HierarchyPath = PATH ( 'table name'[NodeKey]; 'table name'[ParentKey] )
HierarchyDepth = PATHLENGTH ( 'table name'[HierarchyPath] )
IsLeaf =CALCULATE (
COUNTROWS ( 'table name' );
ALL ( 'table name' );
'table name' [ParentKey] = EARLIER ( 'table name' [NodeKey] )
) = 0
Level1 =
LOOKUPVALUE (
'table name'[Name];
'table name'[NodeKey];
PATHITEM ( 'table name'[HierarchyPath]; 1; INTEGER )
)
Level2 - 10 (number of levels are fixed) = = IF (
'table name'[HierarchyDepth] >= 2;
LOOKUPVALUE (
'table name'[Name];
'table name'[NodeKey];
PATHITEM ( 'table name'[HierarchyPath]; 2; INTEGER )
);
'table name'[Level1]
)
Приведенный выше код выполняется для всех 5 экземпляров иерархии.
Для моей меры мне удалось присоединить одну иерархию через следующий код, добавленный в мою таблицу фактов
First i define Maximum Depth:
------------------------------------------------
MaxNodeDepthTableName2:=MAX ( 'table name'[HierarchyDepth] )
Then I check which Depth is browsed:
------------------------------------------------
BrowseDepthTableName1:=ISFILTERED ( 'table name'[Level1] )
+ ISFILTERED ( 'table name'[Level2] )
+ ISFILTERED ( 'table name'[Level3] )
+ ISFILTERED ( 'table name'[Level4] )
+ ISFILTERED ( 'table name'[Level5] )
+ ISFILTERED ( 'table name'[Level6] )
+ ISFILTERED ( 'table name'[Level7] )
+ ISFILTERED ( 'table name'[Level8] )
+ ISFILTERED ( 'table name'[Level9] )
+ ISFILTERED ( 'table name'[Level10] )
Then I calculate the measure:
------------------------------------------------
Total Count:=IF (
[BrowseDepthTableName1] > [MaxNodeDepthTableName2;
BLANK ();
SUM ( Fact[TotalCount] )
)
Мой вопрос:
Как добавить 4 других экземпляра иерархии к вычисляемому показателю?
Как должен выглядеть DAX?