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 expressão MDX válida que retorna um conjunto.

Set_Expression2
Uma expressão 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 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. O drilldown de tupla é uma extensão do 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 usar a função Hierarchize para ordenar adequadamente os membros do primeiro conjunto.

Exemplo

Os três exemplos a seguir são idênticos, exceto o segundo conjunto. No primeiro exemplo, o segundo conjunto são os 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. Uma vez que DrillupMember só faz drill up sobre os membros que são seguidos imediatamente por descendentes no primeiro conjunto, ele não detalha o membro do Canadá. Canadá é separado de seus descendentes pelos Estados Unidos e pelo Colorado. Se você reordenar os membros para que o Canadá fique diretamente acima de Alberta, então Alberta e Brunswick serão excluídas 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 atenuar os efeitos da ordem dos membros e detalhar o membro do 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]  
  

Consulte Também

Referência de função MDX (MDX)