DrilldownLevel (MDX)

Aprofunda os membros de um conjunto até um nível abaixo do nível mais baixo representado no conjunto.

Especificar o nível em que se deve aprofundar é opcional, mas se definir o nível, pode usar uma expressão de nível ou o nível de índice. Estes argumentos são mutuamente exclusivos. Finalmente, se os membros calculados estiverem presentes na consulta, pode especificar um argumento para os incluir no conjunto de linhas.

Syntax

DrilldownLevel(Set_Expression [,[Level_Expression] ,[Index]] [,INCLUDE_CALC_MEMBERS])  

Arguments

Set_Expression
Uma expressão válida de Expressões Multidimensionais (MDX) que devolve um conjunto.

Level_Expression
(Opcional). Uma expressão MDX que identifica explicitamente o nível a que se deve aprofundar. Se especificar uma expressão de nível, ignore o argumento índice abaixo.

Índice
(Opcional). Uma expressão numérica válida que especifica o número de hierarquia a aprofundar dentro do conjunto. Pode usar o nível do índice em vez de Level_Expression para identificar explicitamente o nível a partir do qual deve aprofundar.

Include_Calc_Members
(Opcional). Um sinalizador que indica se deve incluir os membros calculados, caso existam, ao nível de drill down.

Observações

A função DrilldownLevel devolve um conjunto de membros filhos numa ordem hierárquica, baseada nos membros incluídos no conjunto especificado. A ordem é preservada entre os membros originais do conjunto especificado, exceto que todos os membros filhos incluídos no conjunto de resultados da função são imediatamente incluídos sob o seu membro principal.

Dada uma estrutura de dados hierárquica multinível, pode escolher explicitamente um nível a aprofundar. Existem duas formas mutuamente exclusivas de especificar o nível. A primeira abordagem é definir o argumento level_expression usando uma expressão MDX que devolve o nível. Uma abordagem alternativa é especificar o argumento do índice , usando uma expressão numérica que especifique o nível por número.

Se uma expressão de nível for especificada, a função constrói um conjunto numa ordem hierárquica ao recuperar os filhos apenas dos membros que estão no nível especificado. Se uma expressão de nível for especificada e não houver nenhum membro nesse nível, a expressão de nível é ignorada.

Se for especificado um valor de índice, a função constrói um conjunto numa ordem hierárquica ao recuperar os filhos apenas dos membros que estão no nível seguinte mais baixo da hierarquia referenciado no conjunto especificado, dado um índice baseado em zero.

Se nem uma expressão de nível nem um valor de índice forem especificados, a função constrói um conjunto numa ordem hierárquica ao recuperar os filhos apenas dos membros que estão no nível mais baixo da primeira dimensão referenciada no conjunto especificado.

Consultar a propriedade XMLA MdpropMdxDrillFunctions permite-lhe verificar o nível de suporte que o servidor oferece para as funções de perfuração; ver Propriedades XMLA Suportadas (XMLA) para mais detalhes.

Examples

Pode tentar os seguintes exemplos na janela de consultas MDX no SSMS, usando o cubo Adventure Works.

Exemplo 1 - demonstra sintaxe mínima

O primeiro exemplo mostra a sintaxe mínima para o DrilldownLevel. O único argumento obrigatório é uma expressão conjunta. Repare que, ao executar esta consulta, obtém o nome principal [Todas as Categorias] e os membros do próximo nível: [Acessórios], [Bicicletas], e assim sucessivamente. Embora este exemplo seja simples, demonstra o propósito básico da função DrilldownLevel , que é perfurar para o nível seguinte abaixo.

SELECT DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]}}) ON COLUMNS  
FROM [Adventure Works]  

Exemplo 2 - sintaxe alternativa usando um nível de índice explícito

Este exemplo demonstra a sintaxe alternativa, onde o nível do índice é especificado através de uma expressão numérica. Neste caso, o nível do índice é 0. Para um índice baseado em zero, este é o nível mais baixo.

SELECT  
DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]},,0) ON COLUMNS  
FROM [Adventure Works]  

Note que o conjunto de resultados é idêntico ao da consulta anterior. Como regra geral, definir o nível do índice é desnecessário, a menos que queiras que a análise comece num nível específico. Execute novamente a consulta anterior, definindo o valor do índice para 1 e depois para 2. Com o valor do índice definido em 1, vê-se que o detalhamento começa no segundo nível da hierarquia. Com o valor do índice definido em 2, o drill down começa no terceiro nível, o nível mais alto neste exemplo. Quanto maior for a expressão numérica, maior será o nível do índice.

Exemplo 3 - demonstra uma expressão de nível

O exemplo seguinte mostra como usar uma expressão de nível. Dado um conjunto que representa uma estrutura hierárquica, usar uma expressão de nível permite-lhe escolher um nível na hierarquia para iniciar a análise.

Neste exemplo, o nível de drill down começa em [City], como o segundo argumento da função DrilldownLevel . Quando executa esta consulta, analise a fundo ao nível da [cidade], para os estados de Washington e Oregon. De acordo com a função DrilldownLevel , o conjunto de resultados inclui também membros no nível seguinte, [Códigos Postais].

SELECT [Measures].[Internet Sales Amount] ON COLUMNS,  
   NON EMPTY (  
   DRILLDOWNLEVEL(  
       {[Customer].[Customer Geography].[Country].[United States],  
           DESCENDANTS(  
             { [Customer].[Customer Geography].[State-Province].[Washington],    
               [Customer].[Customer Geography].[State-Province].[Oregon]},   
               [Customer].[Customer Geography].[City]) } ,  
[Customer].[Customer Geography].[City] ) )  ON ROWS  
FROM [Adventure Works]  

Exemplo 4 - incluindo membros calculados

O último exemplo mostra um membro calculado, que aparece no final do conjunto de resultados quando adicionas a bandeira include_calculated_members . Note que a bandeira é especificada como o quarto parâmetro.

Este exemplo funciona porque o membro calculado está ao mesmo nível dos membros não calculados. O membro calculado [West Coast] é composto por membros de [Estados Unidos], mais todos os membros um nível abaixo dos [Estados Unidos].

WITH MEMBER   
[Customer].[Customer Geography].[Country].&[United States].[West Coast] AS  
[Customer].[Customer Geography].[State-Province].&[OR]&[US] +  
[Customer].[Customer Geography].[State-Province].&[WA]&[US] +  
[Customer].[Customer Geography].[State-Province].&[CA]&[US]  
SELECT [Measures].[Internet Order Count] ON 0,  
DRILLDOWNLEVEL([Customer].[Customer Geography].[Country].&[United States],,,INCLUDE_CALC_MEMBERS) on 1  
FROM [Adventure Works]  

Se remover apenas o flag e voltar a executar a consulta, obtém os mesmos resultados, menos o membro calculado, [West Coast].