Ancestral (MDX)

Uma função que devolve o antecessor de um membro especificado a um nível determinado ou a uma distância determinada do membro.

Syntax

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

Arguments

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

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

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

Observações

Com a função Ancestral , fornece à função uma expressão de membro MDX e depois fornece uma expressão MDX de um nível que é antecessor do membro ou uma expressão numérica que representa o número de níveis acima desse membro. Com esta informação, a função Ancestors devolve o membro ancestral nesse nível.

Note

Para devolver um conjunto contendo o membro antepassado, em vez de apenas o membro antepassado, use a função Ancestors (MDX ).

Se uma expressão de nível for especificada, a função Ancestral devolve o antepassado 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 devolve um erro.

Se uma distância for especificada, a função Ancestral devolve o antepassado do membro especificado, ou seja, 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 utilizador ou, em alguns casos, uma hierarquia pai-filho. Um número 1 devolve o progenitor do membro e um número 2 devolve o avô do membro (se existir). Um número 0 devolve o próprio membro.

Note

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

Examples

O exemplo seguinte utiliza uma expressão de nível e devolve o Montante das Vendas na Internet para cada State-Province na Austrália e a sua percentagem do montante total das Vendas na 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 seguinte utiliza uma expressão numérica e devolve o Montante das Vendas na Internet para cada State-Province na Austrália e a sua percentagem do Total das Vendas na 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]