Descendants (MDX)
Restituisce il set di discendenti di un membro al livello o alla distanza specificata, includendo o escludendo facoltativamente i discendenti in altri livelli.
Sintassi
Member expression syntax using a level expression
Descendants(Member_Expression [ , Level_Expression [ ,Desc_Flag ] ] )
Member expression syntax using a numeric expression
Descendants(Member_Expression [ , Distance [ ,Desc_Flag ] ] )
Set expression syntax using a level expression
Descendants(Set_Expression [ , Level_Expression [ ,Desc_Flag ] ] )
Member expression syntax using a numeric expression
Descendants(Set_Expression [ , Distance [ ,Desc_Flag ] ] )
Argomenti
Espressione_membro
Espressione MDX (Multidimensional Expression) valida che restituisce un membro.
Set_Expression
Espressione MDX (Multidimensional Expression) valida che restituisce un set.
Level_Expression
Espressione MDX (Multidimensional Expression) valida che restituisce un livello.
Distanza
Espressione numerica valida che specifica la distanza dal membro specificato.
Desc_Flag
Espressione stringa valida che specifica un flag descrittivo che distingue i possibili set di discendenti.
Osservazioni:
Se si specifica un livello, la funzione Descendants restituisce un set contenente i discendenti del membro specificato o i membri del set specificato, a un livello specificato, facoltativamente modificato da un flag specificato in Desc_Flag.
Se si specifica Distance , la funzione Descendants restituisce un set contenente i discendenti del membro specificato o i membri del set specificato che sono il numero specificato di livelli di distanza nella gerarchia del membro specificato, facoltativamente modificato da un flag specificato in Desc_Flag. Questa funzione viene in genere utilizzata con l'argomento Distance per gestire gerarchie incomplete. Se la distanza specificata è zero (0), la funzione restituisce un set costituito soltanto dal membro specificato o dal set specificato.
Se viene specificata un'espressione set, la funzione Descendants viene risolta singolarmente per ogni membro del set e il set viene nuovamente creato. In altre parole, la sintassi usata per la funzione Descendants è funzionalmente equivalente alla funzione MDX Generate .
Se non viene specificato alcun livello o distanza, il valore predefinito per il livello usato dalla funzione viene determinato chiamando la funzione Level (<<Member>>). Livello) per il membro specificato (se è specificato un membro) o chiamando la funzione Level per ogni membro del set specificato (se è specificato un set). Se non si specifica un'espressione di livello o la distanza o non vengono specificati flag, la funzione viene eseguita come se fosse stata utilizzata la sintassi seguente:
Descendants
(
Member_Expression ,
Member_Expression.Level ,
SELF_BEFORE_AFTER
)
Se si specifica un livello e non viene specificato un flag descrittivo, la funzione viene eseguita come se fosse stata utilizzata la sintassi seguente:
Descendants
(
Member_Expression ,
Level_Expression,
SELF
)
Modificando il valore del flag descrittivo è possibile includere o escludere i discendenti alla distanza o al livello specificato, gli elementi figlio prima o dopo la distanza o il livello specificato (fino al nodo foglia) e tutti gli elementi figlio di tipo foglia indipendentemente dalla distanza o dal livello specificato. Nella tabella seguente vengono descritti i flag consentiti nell'argomento Desc_Flag .
Contrassegno | Descrizione |
---|---|
SELF | Restituisce soltanto i membri discendenti alla distanza indicata o del livello specificato. La funzione include il membro specificato, se il livello specificato corrisponde al livello di tale membro. |
DOPO | Restituisce i membri discendenti di tutti i livelli subordinati alla distanza indicata o al livello specificato. |
PRIMA | Restituisce i membri discendenti di tutti i livelli tra il membro specificato e il livello specificato oppure alla distanza indicata. Include il membro specificato, ma non i membri della distanza indicata o del livello specificato. |
BEFORE_AND_AFTER | Restituisce i membri discendenti di tutti i livelli subordinati al livello del membro specificato. Include il membro specificato, ma non i membri del livello specificato o alla distanza indicata. |
SELF_AND_AFTER | Restituisce i membri discendenti del livello specificato o alla distanza indicata e di tutti i livelli subordinati al livello specificato oppure alla distanza indicata. |
SELF_AND_BEFORE | Restituisce i membri discendenti del livello specificato o alla distanza indicata e di tutti i livelli tra il membro specificato e il livello specificato oppure alla distanza indicata, includendo il membro specificato. |
SELF_BEFORE_AFTER | Restituisce i membri discendenti di tutti i livelli subordinati al livello del membro specificato, includendo tale membro. |
LEAVES | Restituisce i membri discendenti di tipo foglia tra il membro specificato e il livello specificato oppure alla distanza indicata. |
Esempi
Nell'esempio seguente vengono restituiti il membro specificato (Stati Uniti) e i membri tra il membro specificato (Stati Uniti) e i membri del livello che precede il livello specificato (City). Vengono quindi restituiti il membro specificato stesso (Stati Uniti) e i membri del livello State-Province, che precede il livello City. Nell'esempio sono inclusi argomenti impostati come commenti che consentono di testare facilmente altri argomenti per questa funzione.
SELECT Descendants
([Geography].[Geography].[Country].&[United States]
//, [Geography].[Geography].[Country]
, [Geography].[Geography].[City]
//, [Geography].[Geography].Levels (3)
//, SELF
//, AFTER
, BEFORE
// BEFORE_AND_AFTER
//, SELF_AND_AFTER
//, SELF_AND_BEFORE
//,SELF_BEFORE_AFTER
//,LEAVES
) ON 0
FROM [Adventure Works]
Nell'esempio seguente viene restituita la media giornaliera della Measures.[Gross Profit Margin]
misura, calcolata nei giorni di ogni mese nell'anno fiscale 2003, dal cubo Adventure Works . La funzione Descendants restituisce un set di giorni determinato dal membro corrente della [Date].[Fiscal]
gerarchia.
WITH MEMBER Measures.[Avg Gross Profit Margin] AS Avg
(
Descendants( [Date].[Fiscal].CurrentMember,
[Date].[Fiscal].[Date]
),
Measures.[Gross Profit Margin]
)
SELECT
Measures.[Avg Gross Profit Margin] ON COLUMNS,
[Date].[Fiscal].[Month].Members ON ROWS
FROM [Adventure Works]
WHERE ([Date].[Fiscal Year].&[2003])
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 percentuale sul totale delle vendite su Internet per l'Australia per ogni State-Province. In questo esempio viene utilizzata la funzione Item per estrarre la prima tupla (e solo) dal set restituito dalla funzione Predecessors .
WITH MEMBER Measures.x AS
[Measures].[Internet Sales Amount] /
( [Measures].[Internet Sales Amount],
Ancestors
( [Customer].[Customer Geography].CurrentMember,
[Customer].[Customer Geography].[Country]
).Item (0)
), 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]