Qual è il modo migliore per elencare un membro e tutti i suoi discendenti in MDX?
-
02-07-2019 - |
Domanda
In un database OLAP con cui lavoro esiste una gerarchia di 'Posizione' composta dai livelli Azienda, Regione, Area, Sito, Stanza, Fino a. Per una determinata azienda ho bisogno di scrivere un MDX che elenchi tutte le regioni, aree e siti (ma non tutti i livelli al di sotto del sito). Attualmente sto realizzando questo con il seguente MDX
HIERARCHIZE({
[Location].[Test Company],
Descendants([Location].[Test Company], [Location].[Region]),
Descendants([Location].[Test Company], [Location].[Area]),
Descendants([Location].[Test Company], [Location].[Site])
})
Poiché la mia conoscenza di MDX è limitata, mi chiedevo se ci fosse un modo più semplice per farlo, con un solo comando piuttosto che quattro? C'è un modo meno dettagliato per raggiungere questo obiettivo o il mio esempio è l'unico vero modo per raggiungere questo obiettivo?
Soluzione
DESCENDANTS([Location].[Test Company],[Location].[Site], SELF_AND_BEFORE)
Altri suggerimenti
Il comando che vuoi è DESCENDANTS. Tieni presente l'analogia dell '"albero genealogico" e puoi vedere che questo elencherà i discendenti di un membro, per quanto vuoi.
Puoi specificare la 'distanza' (in livelli) dal membro scelto, 3 nel tuo caso.
Ci sono alcune strane opzioni che puoi specificare con il terzo argomento, vuoi SELF_AND_AFTER, vedi http://msdn.microsoft.com/en-us/library/ms146075.aspx
EDIT - oops, come notato da santiiiii, dovrebbe essere SELF_AND_BEFORE