Compartir a través de


DrilldownLevel (MDX)

Explora en profundidad los miembros de un conjunto a un nivel por debajo del nivel más bajo representado en el conjunto.

La especificación del nivel de exploración en profundidad es opcional. Sin embargo, si se especifica, podrá utilizar level expression o bien index level. Estos argumentos son mutuamente excluyentes. Finalmente, si los miembros calculados se encuentran en la consulta, se puede especificar un argumento para incluirlos en el conjunto de filas.

Sintaxis

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

Argumentos

  • Set_Expression
    Expresión MDX (Expresiones multidimensionales) válida que devuelve un conjunto.

  • Level_Expression
    (Opcional). Expresión MDX que identifica explícitamente el nivel al que desea explorar en profundidad. Si se especifica una expresión de nivel, omita el argumento de índice que encontrará a continuación.

  • Index
    (Opcional). Expresión numérica válida que especifica el número de jerarquía para aumentar el nivel de detalle dentro del conjunto. Puede usar el nivel del índice en lugar de Level_Expression para identificar explícitamente el nivel al que desea explorar en profundidad.

  • Include_Calc_Members
    (Opcional). Marca que indica si se van a incluir miembros calculados, si los hubiera, en el nivel al que se va a explorar en profundidad.

Comentarios

La función DrilldownLevel devuelve un conjunto de miembros secundarios en un orden jerárquico, basado en los miembros incluidos en el conjunto especificado. El orden se mantiene entre los miembros originales del conjunto especificado, aunque todos los miembros secundarios incluidos en el conjunto de resultados de la función se incluyen inmediatamente bajo su miembro primario.

En una estructura de datos jerárquica de varios niveles, puede elegir explícitamente el nivel al que desea explorar en profundidad. Existen dos formas de especificar el nivel, que se excluyen mutuamente. El primer enfoque es establecer el argumento level_expression mediante una expresión MDX que devuelve el nivel. Como enfoque alternativo, se puede especificar el argumento index, con una expresión que especifique el nivel por número.

Si se especifica una expresión de nivel, la función crea un conjunto en un orden jerárquico mediante la recuperación de los elementos secundarios de solo aquellos miembros que se encuentran en el nivel especificado. Si se especifica una expresión de nivel y no hay ningún miembro en ese nivel, se ignorará la expresión de nivel.

Si se especifica un valor de índice, la función crea un conjunto en orden jerárquico mediante la recuperación de los elementos secundarios de solo aquellos miembros que se encuentran en el nivel más bajo siguiente de la jerarquía a la que se hace referencia en el conjunto especificado, dado un índice basado en cero.

Si no se especifican una expresión de nivel ni un valor de índice, la función crea un conjunto en orden jerárquico mediante la recuperación de los elementos secundarios de solo aquellos miembros que se encuentran en el nivel más bajo siguiente de la primera dimensión a la que se hace referencia en el conjunto especificado.

Consultar la propiedad XMLA MdpropMdxDrillFunctions le permite comprobar el nivel de soporte técnico que el servidor proporciona para las funciones de perforación; vea Propiedades XMLA compatibles (XMLA) para obtener detalles.

Ejemplos

Puede intentar implementar los siguientes ejemplos en la ventana de consulta MDX en SSMS, mediante el cubo Adventure Works.

Ejemplo 1: demuestra sintaxis mínima

El primer ejemplo muestra la sintaxis mínima para DrilldownLevel. El único argumento que se requiere es una expresión definida. Tenga en cuenta que cuando ejecuta esta consulta, obtiene el elemento primario [All Categories] y los miembros del nivel inferior siguiente: [Accessories], [Bikes] y así sucesivamente. Aunque este ejemplo es sencillo, demuestra el fin básico de la función DrilldownLevel, que es explorar en profundidad al nivel inferior siguiente.

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

Ejemplo 2: sintaxis alternativa mediante un nivel del índice explícito

Este ejemplo muestra la sintaxis alternativa, donde el nivel del índice se especifica a través de una expresión numérica. En este caso, el nivel del índice es 0. Para un índice basado en cero, este es el nivel más bajo.

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

Tenga en cuenta que el conjunto de resultados es idéntico al de la consulta anterior. Como regla general, no es necesario establecer el nivel de índice a menos que quiera que la exploración en profundidad se inicie en un nivel específico. Vuelva a ejecutar la consulta anterior, estableciendo el valor del índice en 1, y después en 2. Con el valor del índice definido en 1, la exploración en profundidad se iniciará en el segundo nivel de la jerarquía. Con el valor de índice definido en 2, la exploración en profundidad se iniciará en el nivel más alto de este ejemplo. Cuanto más alta sea la expresión numérica, más alto será el nivel del índice.

Ejemplo 3: muestra una expresión de nivel

El siguiente ejemplo muestra cómo usar una expresión de nivel. En un conjunto que representa una estructura jerárquica, el uso de una expresión de nivel permite elegir un nivel de la jerarquía para iniciar la exploración en profundidad.

En este ejemplo, la exploración en profundidad se iniciará en [City], como el segundo argumento de la función DrilldownLevel. Al ejecutar esta consulta, la exploración en profundidad se inicia en el nivel [City], para los estados de Washington y Oregon. Debido a la función DrilldownLevel, el resultado definido también incluye miembros del nivel inferior siguiente, [Postal codes].

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]

Ejemplo 4: incluidos los miembros calculados

El último ejemplo muestra un miembro calculado, que aparece en la parte inferior del resultado establecido al agregar la marca include_calculated_members. Tenga en cuenta que la marca se especifica como el cuarto parámetro.

Este ejemplo funciona porque el miembro calculado está al mismo nivel que los miembros no calculados. El miembro calculado [West Coast] está compuesto por miembros de [United States], más todos los miembros de un nivel por debajo de [United States].

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]

Si solo quita la marca y vuelve a ejecutar la consulta, obtendrá los mismos resultados, menos el miembro calculado, [West Coast].

Vea también

Referencia

Referencia de funciones MDX (MDX)