Compartilhar via


Ancestor (MDX)

Uma função que retorna o ancestral de um membro especificado em um nível especificado, ou à distância especificada, a partir do membro.

Sintaxe

Level syntax
Ancestor(Member_Expression, Level_Expression)

Numeric syntax
Ancestor(Member_Expression, Distance)

Argumentos

  • Member_Expression
    Uma linguagem MDX válida que retorna um membro.

  • Level_Expression
    Uma linguagem MDX válida que retorna um nível.

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

Comentários

Com a função Ancestor, você fornece à função uma expressão de membro MDX e, em seguida, fornece uma linguagem MDX de um nível que é um ancestral daquele membro ou uma expressão numérica que representa o número de níveis acima daquele membro. Com essas informações, a função Ancestors retorna o membro do ancestral àquele nível.

ObservaçãoObservação

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

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

Se uma distância for especificada, a função Ancestor retornará o ancestral do membro especificado que é o número de etapas especificadas na hierarquia especificada por uma expressão de membro. Um membro pode ser especificado como um membro de uma hierarquia de atributo, uma hierarquia definida pelo usuário ou, em alguns casos, uma hierarquia pai-filho. Um número 1 retorna o pai de um membro e um número 2 retorna o avô do membro (se houver um). Zero retorna o membro em si.

ObservaçãoObservação

Utilize esse formato da função Ancestor para casos em que o nível pai é desconhecido ou não pode ser nomeado.

Exemplos

O exemplo a seguir usa uma expressão de nível e retorna o Valor de Vendas pela Internet para cada Estado-Província da Austrália e seu percentual do Valor de Vendas pala 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 usa uma expressão numérica e retorna o Valor de Vendas pela Internet para cada Estado-Província da Austrália e seu percentual do Valor de Vendas pala Internet para todos os países.

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]

Consulte também

Referência