Qual é a melhor maneira de listar um membro e todos os seus descendentes no MDX?
-
02-07-2019 - |
Pergunta
Em um OLAP banco de dados que eu trabalho com existe uma hierarquia 'Location' consiste nos níveis da empresa, região, área, local, sala, Till. Para uma empresa particular, eu preciso escrever alguns MDX que lista todas as regiões, áreas e locais (mas não quaisquer níveis abaixo do Site). Atualmente estou conseguindo isso com o seguinte MDX
HIERARCHIZE({
[Location].[Test Company],
Descendants([Location].[Test Company], [Location].[Region]),
Descendants([Location].[Test Company], [Location].[Area]),
Descendants([Location].[Test Company], [Location].[Site])
})
Porque o meu conhecimento de MDX é limitado, eu queria saber se havia uma maneira simples de fazer isso, com um único comando, em vez que quatro? Existe uma maneira menos detalhada de achieveing ??isso, ou é o meu exemplo a maneira única real de conseguir isso?
Solução
DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)
Outras dicas
O comando que você quer é DESCENDENTES. Mantenha a analogia 'árvore genealógica' em mente, e você pode ver que este irá listar os descendentes de um membro, para baixo tanto quanto você quiser.
Você pode especificar a 'distância' (em níveis) do membro escolhido, 3 em seu caso.
Existem algumas opções estranhas que você pode especificar com o terceiro argumento, você quer SELF_AND_AFTER, consulte http://msdn.microsoft.com/en-us/library/ms146075.aspx
EDIT - oops, como santiiiii notado, deve ser SELF_AND_BEFORE