2017-06-01 4 views
0

donc j'ai cette dimension qui a une hiérarchie irrégulière. La hiérarchie est agréable à naviguer, mais une douleur royale à rechercher (Excel est l'interface, donc vous devez chercher manuellement dans les 12 niveaux ou plus).Somme partie de la hiérarchie basée sur le deuxième attribut de la même dimension

Nous avons créé un attribut "search" distinct avec tous les membres de la hiérarchie pour effectuer une recherche. Cependant, dans cette liste, les feuilles contiendront les données correctes, mais les nœuds intermédiaires ne seront bien sûr pas enroulés. de l'information hiérarchique)

Mon idée était de mettre une formule sur la liste à plat pour aller chercher son membre équivalent dans la hiérarchie et obtenir sa valeur à partir de là. Voici ce que j'ai - les deux approches ne fonctionnent malheureusement pas:

With 

------ APPROACH 1: DESCENDANTS 
Member [m1] As 
Sum(
Descendants(
    Filter(
     [Dimension].[Hierarchy].Members 
    , [Dimension].[Hierarchy].Properties("Key") = 
     [Dimension].[Flat List].CurrentMember.Properties("Key") 
),, LEAVES), ([Measure].[MeasureHierarchy].CurrentMember, [Measures].[Amount])) 


------- APPROACH 2: StrToMember + CHILDREN 
Member [m2] As 
Sum(
    StrToMember("[Dimension].[Hierarchy].&["+ 
    [Dimension].[Flat List].CurrentMember.Properties("Key")+ 
    "]").Children, 
    ([Measure].[MeasureHierarchy].CurrentMember, [Measures].[Amount]) 
) 

Select 

{ [m1], [m2] } 
On 0, 

[Dimension].[Flat List].&[838] 
    dimension properties member_key 
On 1 

From [Cube] 
Where [Measure].[MeasureHierarchy].[SomeMeasure] 

Les deux seront toujours retourner null - si j'Interrogation de la hiérarchie directement, cela fonctionne - tout simplement pas si j'utilise la liste plate Toutes les idées?

Répondre

0

tout compris moi-même - avait une étincelle d'inspiration ce soir :-D

la réponse est aussi simple que:

with member 
[m1] as 
(
    StrToMember("[Dimension].[Hierarchy].&["+ 
    [Dimension].[Flat List].CurrentMember.Properties("Key")+ 
    "]") 
    , [Dimension].[Flat List].[All] 
) 

...

Peut-être que cela aidera quelqu'un d'autre aussi