DrillupMember (MDX)
Retorna os membros em um conjunto especificado não descendentes de membros em um segundo conjunto especificado.
Sintaxe
DrillupMember(Set_Expression1, Set_Expression2)
Argumentos
Set_Expression1
Uma linguagem MDX válida que retorna um conjunto.Set_Expression2
Uma linguagem MDX válida que retorna um conjunto.
Comentários
A função DrillupMember retorna um conjunto de membros com base nos membros especificados no primeiro conjunto que são descendentes de membros no segundo conjunto. O primeiro conjunto pode ter qualquer dimensionalidade, mas o segundo deve conter um conjunto unidimensional. A ordem é preservada entre os membros originais no primeiro conjunto. A função constrói o conjunto incluindo apenas aqueles membros do primeiro conjunto que sejam descendentes imediatos de membros do segundo conjunto. Se o ancestral imediato de um membro no primeiro conjunto não estiver presente no segundo conjunto, o membro no primeiro conjunto será incluído no conjunto retornado por essa função. Descendentes no primeiro conjunto que precedem um membro ancestral no segundo conjunto também são incluídos.
O primeiro conjunto pode conter tuplas em vez de membros. A busca detalhada de tupla é uma extensão de OLE DB e retorna um conjunto de tuplas em vez de membros.
Importante |
---|
Um membro será buscado somente se for seguido imediatamente por um filho ou um descendente. A ordem de membros no conjunto é importante tanto para as famílias de funções Drilldown * quanto Drillup *. Considere o uso da função Hierarchize para ordenar adequadamente os membros do primeiro conjunto. |
Exemplo
Os três exemplos a seguir são idênticos, exceto pelo segundo conjunto. No primeiro exemplo, o segundo conjunto é Estados Unidos. Como resultado, Colorado é excluído do conjunto de resultados. É um descendente dos Estados Unidos.
SELECT DrillUpMember (
{ [Geography].[Geography].[Country].[Canada]
,[Geography].[Geography].[Country].[United States]
,[Geography].[Geography].[State-Province].[Colorado]
,[Geography].[Geography].[State-Province].[Alberta]
,[Geography].[Geography].[State-Province].[Brunswick]
}
, {[Geography].[Geography].[Country].[United States]}
) ON 0
FROM [Adventure Works]
O exemplo dois mostra a importância de ordem do membro. Como DrillupMember faz drill up somente dos membros seguidos imediatamente por descendentes do primeiro conjunto, ele não fará drill up do membro Canadá. Canadá é separado do seus descendentes, Estados Unidos e Colorado. Se você reordenar os membros para que Canadá fique diretamente acima de Alberta, então Alberta e Brunswick serão excluídos do conjunto de linhas.
SELECT DrillUpMember (
{ [Geography].[Geography].[Country].[Canada]
,[Geography].[Geography].[Country].[United States]
,[Geography].[Geography].[State-Province].[Colorado]
,[Geography].[Geography].[State-Province].[Alberta]
,[Geography].[Geography].[State-Province].[Brunswick]
}
, {[Geography].[Geography].[Country].[Canada]}
)
ON 0
FROM [Adventure Works]
O exemplo três mostra como o uso de Hierarchize pode reduzir os efeitos de ordem do membro e fazer o drill up do membro Canadá.
SELECT DrillUpMember (
Hierarchize
(
{ [Geography].[Geography].[Country].[Canada]
,[Geography].[Geography].[Country].[United States]
,[Geography].[Geography].[State-Province].[Colorado]
,[Geography].[Geography].[State-Province].[Alberta]
,[Geography].[Geography].[State-Province].[Brunswick]
}
), {[Geography].[Geography].[Country].[Canada]}
)
ON 0
FROM [Adventure Works]