Quel est le meilleur moyen de répertorier un membre et tous ses descendants dans MDX?
-
02-07-2019 - |
Question
Dans une base de données OLAP avec laquelle je travaille, il existe une hiérarchie "Emplacement" comprenant les niveaux Société, Région, Zone, Site, Salle, Magasin. Pour une entreprise en particulier, j'ai besoin d'écrire un fichier MDX qui répertorie toutes les régions, zones et sites (mais pas les niveaux inférieurs à Site). Actuellement, j'y parviens avec le MDX suivant
HIERARCHIZE({
[Location].[Test Company],
Descendants([Location].[Test Company], [Location].[Region]),
Descendants([Location].[Test Company], [Location].[Area]),
Descendants([Location].[Test Company], [Location].[Site])
})
Comme ma connaissance de MDX est limitée, je me demandais s’il existait un moyen plus simple de procéder, avec une seule commande plutôt que quatre. Existe-t-il un moyen moins verbeux d’atteindre cet objectif ou mon exemple est-il le seul véritable moyen d’y parvenir?
La solution
DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)
Autres conseils
La commande que vous souhaitez utiliser est DESCENDANTS. Gardez à l'esprit l'analogie de «l'arbre généalogique», et vous pouvez voir qu'elle affichera la liste des descendants d'un membre, aussi loin que vous le souhaitez.
Vous pouvez spécifier la "distance" (en niveaux) du membre choisi, 3 dans votre cas.
Il y a quelques options étranges que vous pouvez spécifier avec le troisième argument, vous voulez SELF_AND_AFTER, voir http://msdn.microsoft.com/en-us/library/ms146075.aspx
EDIT - oups, comme l'a dit santiiiii, il devrait être SELF_AND_BEFORE