Ancestral (MDX)

Uma função que retorna o ancestral de um membro especificado em um nível especificado ou a uma distância determinada do membro.

Sintaxe

  
Level syntax  
Ancestor(Member_Expression, Level_Expression)  
  
Numeric syntax  
Ancestor(Member_Expression, Distance)  

Argumentos

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

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.

Remarks

Com a função Ancestral , você fornece à função uma expressão de membro MDX e então fornece uma expressão MDX de um nível que é ancestral do membro ou uma expressão numérica que representa o número de níveis acima desse membro. Com essa informação, a função Ancestral retorna o membro ancestral naquele nível.

Note

Para retornar um conjunto contendo o membro ancestral, em vez de apenas o membro ancestral, use a função Ancestrais (MDX ).

Se uma expressão de nível for especificada, a função Ancestral retorna o ancestral do membro especificado no nível especificado. Se o membro especificado não estiver dentro da mesma hierarquia do nível especificado, a função retorna um erro.

Se uma distância for especificada, a função Ancestral retorna o ancestral do membro especificado, que é o número de passos especificados na hierarquia especificada pela expressão do membro. Um membro pode ser especificado como membro de uma hierarquia de atributos, uma hierarquia definida pelo usuário ou, em alguns casos, uma hierarquia pai-filho. Um número 1 retorna o pai ou mãe do membro e um número 2 retorna o avô do membro (se existir). Um número 0 retorna o próprio membro.

Note

Use esta forma da função Ancestral para casos em que o nível do pai é desconhecido ou não pode ser nomeado.

Exemplos

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 e sua porcentagem do Total das Vendas pela Internet para a Austrália.

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]  

O exemplo a seguir utiliza uma expressão numérica e retorna o Valor das Vendas pela Internet para cada State-Province na Austrália e sua porcentagem do Valor Total das Vendas pela Internet para todos os países/regiões.

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]