Descendentes (MDX)

Retorna o conjunto de descendentes de um membro em um nível ou distância especificado, opcionalmente incluindo ou excluindo descendentes em outros níveis.

Sintaxe

  
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 ] ] )  
  

Argumentos

Member_Expression
Uma expressão MDX (Expressões Multidimensionais) válida que retorna um membro.

Set_expression
Uma expressão válida de Expressões Multidimensionais (MDX) que retorna um conjunto.

Level_Expression
Uma expressão válida de Expressões Multidimensionais (MDX) que retorna um nível.

Distância
Uma expressão numérica válida que especifica a distância do membro especificado.

Desc_Flag
Uma expressão de string válida que especifica uma flag de descrição que distingue entre possíveis conjuntos de descendentes.

Remarks

Se um nível for especificado, a função Descendentes retorna um conjunto que contém os descendentes do membro especificado ou os membros do conjunto especificado, em um nível especificado, opcionalmente modificado por uma bandeira especificada em Desc_Flag.

Se Distância for especificada, a função Descendentes retorna um conjunto que contém os descendentes do membro especificado ou os membros do conjunto especificado que estão no número especificado de níveis de distância na hierarquia do membro especificado, opcionalmente modificados por uma flag especificada em Desc_Flag. Normalmente, você usa essa função com o argumento Distância para lidar com hierarquias desordenadas. Se a distância especificada for zero (0), a função retorna um conjunto que consiste apenas no membro especificado ou no conjunto especificado.

Se uma expressão de conjunto for especificada, a função Descendentes é resolvida individualmente para cada membro do conjunto, e o conjunto é criado novamente. Em outras palavras, a sintaxe usada para a função Descendentes é funcionalmente equivalente à função MDX Gerar .

Se nenhum nível ou distância for especificado, o valor padrão para o nível usado pela função é determinado chamando a função Nível (<<Member>>. Level) para o membro especificado (se um membro for especificado) ou chamando a função Level para cada membro do conjunto especificado (se um conjunto for especificado). Se nenhuma expressão de nível, distância ou flags forem especificados, a função se apresenta como se a seguinte sintaxe fosse usada:

Descendants  
(  
Member_Expression ,  
Member_Expression.Level ,  
SELF_BEFORE_AFTER  
)  

Se um nível for especificado e uma flag de descrição não for especificada, a função se apresenta como se a seguinte sintaxe fosse usada.

Descendants  
(  
Member_Expression ,  
Level_Expression,  
SELF  
)  

Ao alterar o valor do flag de descrição, você pode incluir ou excluir descendentes no nível ou distância especificados, os filhos antes ou depois do nível ou distância especificados (até o nó folha), e os filhos folha independentemente do nível ou distância especificados. A tabela a seguir descreve as bandeiras permitidas no argumento Desc_Flag .

Flag Description
SELF Retorna apenas membros descendentes do nível especificado ou da distância especificada. A função inclui o membro especificado, se o nível especificado for o nível do membro especificado.
DEPOIS Retorna membros descendentes de todos os níveis subordinados ao nível ou distância especificados.
ANTES Retorna membros descendentes de todos os níveis entre o membro especificado e o nível especificado, ou na distância especificada. Inclui o membro especificado, mas não inclui membros do nível ou distância especificados.
BEFORE_AND_AFTER Retorna membros descendentes de todos os níveis subordinados ao nível do membro especificado. Inclui o membro especificado, mas não inclui membros do nível especificado ou da distância especificada.
SELF_AND_AFTER Retorna membros descendentes do nível especificado ou à distância especificada e todos os níveis subordinados ao nível especificado, ou à distância especificada.
SELF_AND_BEFORE Retorna membros descendentes do nível especificado ou na distância especificada, e de todos os níveis entre o membro especificado e o nível especificado, ou na distância especificada, incluindo o membro especificado.
SELF_BEFORE_AFTER Retorna membros descendentes de todos os níveis subordinados ao nível do membro especificado, e inclui o membro especificado.
FOLHAS Retorna membros descendentes da folha entre o membro especificado e o nível especificado, ou na distância especificada.

Exemplos

O exemplo a seguir retorna o membro especificado (Estados Unidos), e os membros entre o membro especificado (Estados Unidos) e os membros do nível antes do nível especificado (Cidade). O exemplo retorna o próprio membro especificado (Estados Unidos) e os membros do nível State-Province (o nível antes do nível da Cidade). Este exemplo inclui argumentos comentados para permitir que você teste facilmente outros argumentos para essa função.

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]   

O exemplo a seguir retorna a média diária da Measures.[Gross Profit Margin] medida, calculada nos dias de cada mês do ano fiscal de 2003, do cubo Adventure Works . A função Descendentes retorna um conjunto de dias determinados a partir do membro atual da [Date].[Fiscal] hierarquia.

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])  

O exemplo a seguir utiliza uma expressão de nível e retorna o Valor das Vendas pela Internet para cada State-Province na Austrália, além de retornar a porcentagem do Total das Vendas pela Internet para a Austrália para cada Estado-Província. Este exemplo usa a função Item para extrair a primeira (e única) tuplo do conjunto que é retornada pela função Ancestrais .

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]