Ancestors (MDX)
Uma função que retorna o conjunto de todos os ancestrais de um membro especificado em um nível especificado, ou à distância especificada, a partir do membro. Com Microsoft SQL Server Analysis Services, o conjunto retornado consistirá sempre em um único membro - Analysis Services não aceita vários pais para um único membro.
Sintaxe
Level syntax
Ancestors(Member_Expression, Level_Expression)
Numeric syntax
Ancestors(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 Ancestors, 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 conjunto de membros (que será um conjuntos composto por um membro) naquele nível.
Dica
Para retornar um membro ancestral, no lugar de um conjunto ancestral, use a função Ancestor.
Se uma expressão de nível for especificada, a função Ancestors retornará o conjunto de todos os ancestrais do membro especificado em um 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 Ancestors retornará um conjunto de todos os membros que são 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 conjunto de membros no nível pai, e um número 2 retorna o conjunto de membros no nível avô (se houver um). Um número 0 retorna o conjunto que inclui só o próprio membro.
Dica
Utilize esse formato da função Ancestors para casos em que o nível pai seja desconhecido ou não possa ser nomeado.
Exemplos
O exemplo a seguir usa a função Ancestors para retornar a medida Valor das Vendas pela Internet para um membro, seu pai e seu avô. Este exemplo usa expressões de nível para especificar os níveis a serem retornados. Os níveis estão na mesma hierarquia que o membro especificado na expressão de membro.
SELECT {
Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Category]),
Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Subcategory]),
Ancestors([Product].[Product Categories].[Product].[Mountain-100 Silver, 38],[Product].[Product Categories].[Product])
} ON 0,
[Measures].[Internet Sales Amount] ON 1
FROM [Adventure Works]
O exemplo a seguir usa a função Ancestors para retornar a medida Valor das Vendas pela Internet para um membro, seu pai e seu avô. Este exemplo usa expressões numéricas para especificar os níveis que são retornados. Os níveis estão na mesma hierarquia que o membro especificado na expressão de membro.
SELECT {
Ancestors(
[Product].[Product Categories].[Product].[Mountain-100 Silver, 38],2
),
Ancestors(
[Product].[Product Categories].[Product].[Mountain-100 Silver, 38],1
),
Ancestors(
[Product].[Product Categories].[Product].[Mountain-100 Silver, 38],0
)
} ON 0,
[Measures].[Internet Sales Amount] ON 1
FROM [Adventure Works]
O exemplo a seguir usa a função Ancestors para retornar a medida Valor das Vendas pela Internet para o pai de um membro de uma hierarquia de atributo. Este exemplo usa uma expressão numérica para especificar o nível que é retornado. Desde que o membro na expressão de membro seja um membro de uma hierarquia de atributo, seu pai é o nível [All].
SELECT {
Ancestors(
[Product].[Product].[Mountain-100 Silver, 38],1
)
} ON 0,
[Measures].[Internet Sales Amount] ON 1
FROM [Adventure Works]