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.
Distância
Uma expressão numérica válida que especifica a distância do membro especificado.
Comentários
Com a função Ancestral , você fornece a função com uma expressão de membro MDX e, em seguida, fornece uma expressão MDX de um nível que é um ancestral do membro ou uma expressão numérica que representa o número de níveis acima desse membro. Com essas informações, a função Ancestrales retorna o membro ancestral nesse nível.
Observação
Para retornar um conjunto que contém o membro ancestral, em vez de apenas o membro ancestral, use a função Ancestrales (MDX).
Se uma expressão de nível for especificada, a função Ancestral 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 Ancestral retornará o ancestral do membro especificado que é o número de etapas especificadas na hierarquia especificada pela 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ção
Use essa 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 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 State-Province na Austrália e sua porcentagem do valor total de 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]