Ancestor (MDX)
Funzione che restituisce il predecessore di un membro specificato al livello specificato oppure alla distanza specificata dal membro.
Sintassi
Level syntax
Ancestor(Member_Expression, Level_Expression)
Numeric syntax
Ancestor(Member_Expression, Distance)
Argomenti
Espressione_membro
Espressione MDX (Multidimensional Expression) valida che restituisce un membro.
Level_Expression
Espressione MDX (Multidimensional Expression) valida che restituisce un livello.
Distanza
Espressione numerica valida che specifica la distanza dal membro specificato.
Osservazioni:
Con la funzione Predecessore , si fornisce alla funzione un'espressione membro MDX e quindi si fornisce un'espressione MDX di un livello che è un predecessore del membro o un'espressione numerica che rappresenta il numero di livelli superiori a tale membro. Con queste informazioni, la funzione Predecessori restituisce il membro predecessore a tale livello.
Nota
Per restituire un set contenente il membro predecessore, anziché solo il membro predecessore, usare la funzione Predecessori (MDX).
Se viene specificata un'espressione di livello, la funzione Predecessore restituisce il predecessore del membro specificato a livello specificato. Se il membro specificato non è incluso nella stessa gerarchia del livello specificato, la funzione restituisce un errore.
Se viene specificata una distanza, la funzione Predecessore restituisce il predecessore del membro specificato che corrisponde al numero di passaggi specificati nella gerarchia specificata dall'espressione membro. Un membro può essere specificato come membro di una gerarchia dell'attributo, una gerarchia definita dall'utente o, in alcuni casi, una gerarchia padre-figlio. Con il numero 1 viene restituito l'elemento padre di un membro, mentre con il numero 2 viene restituito l'elemento padre del padre di un membro, se esistente. Il numero 0 restituisce il membro stesso.
Nota
Utilizzare questa forma della funzione Predecessore per i casi in cui il livello dell'elemento padre è sconosciuto o non può essere denominato.
Esempi
Nell'esempio seguente viene utilizzata un'espressione di livello e vengono restituiti l'importo delle vendite su Internet per ogni State-Province in Australia e la relativa percentuale sul totale delle vendite su Internet per l'Australia.
WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] /
(
[Measures].[Internet Sales Amount],
Ancestor
(
[Customer].[Customer Geography].CurrentMember,
[Customer].[Customer Geography].[Country]
)
), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
Descendants
(
[Customer].[Customer Geography].[Country].&[Australia],
[Customer].[Customer Geography].[State-Province], SELF
)
} ON 1
FROM [Adventure Works]
Nell'esempio seguente viene utilizzata un'espressione numerica e viene restituito Internet Sales Amount per ogni Provincia di Stato in Australia e la percentuale dell'importo totale delle vendite Internet per tutti i paesi/aree geografiche.
WITH MEMBER Measures.x AS [Measures].[Internet Sales Amount] /
(
[Measures].[Internet Sales Amount],
Ancestor
([Customer].[Customer Geography].CurrentMember, 2)
), FORMAT_STRING = '0%'
SELECT {[Measures].[Internet Sales Amount], Measures.x} ON 0,
{
Descendants
(
[Customer].[Customer Geography].[Country].&[Australia],
[Customer].[Customer Geography].[State-Province], SELF
)
} ON 1
FROM [Adventure Works]