DrilldownLevel (MDX)
Aumenta los detalles de los miembros de un conjunto a un nivel por debajo del nivel más bajo representado en el conjunto.
La especificación del nivel en el que se van a explorar los detalles es opcional, pero si establece el nivel, puede usar level expression o index level. Estos argumentos son mutuamente exclusivos. Por último, si los miembros calculados están presentes en la consulta, 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 de forma explícita el nivel en el que aumentar los detalles. Si especifica una expresión de nivel, omita el siguiente argumento de índice.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. Se puede usar el nivel del índice en lugar de Level_Expression para identificar de forma explícita el nivel en el que aumentar los detalles.Include_Calc_Members
(Opcional). Marca que indica si se deben incluir en el nivel de detalle los miembros calculados, si existen.
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.
Si hay una estructura de datos jerárquica de varios niveles, puede elegir de forma explícita un nivel en el que aumentar los detalles. Hay dos métodos, que se excluyen mutuamente, de especificar el nivel. El primero consiste en establecer el argumento level_expression utilizando una expresión MDX que devuelva el nivel. El otro consiste en especificar el argumento index, utilizando una expresión numérica 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, la expresión de nivel no se tiene en cuenta.
Si se especifica un valor del í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, en función de un índice basado en cero dado.
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 compatibilidad que el servidor proporciona para las funciones de obtención de detalles; vea Propiedades XMLA compatibles (XMLA) para obtener detalles.
Ejemplos
Puede probar los ejemplos siguientes en la ventana de consulta MDX de SSMS, utilizando el cubo de Adventure Works.
Ejemplo 1: muestra la sintaxis mínima
En el primer ejemplo se muestra la sintaxis mínima de DrilldownLevel. El único argumento necesario es una expresión de conjunto. Observe que al ejecutar esta consulta, se obtienen el miembro primario [All Categories] y los miembros del siguiente nivel inferior: [Accessories], [Bikes], etc. Si bien este ejemplo es sencillo, muestra la finalidad básica de la función DrilldownLevel, que es aumentar los detalles hasta el siguiente nivel inferior.
SELECT DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]}}) ON COLUMNS
FROM [Adventure Works]
Ejemplo 2: sintaxis alternativa en la que se utiliza un nivel del índice explícito
En este ejemplo se muestra la sintaxis alternativa, en la que se especifica un nivel del índice mediante una expresión numérica. En este caso, el nivel del índice es 0. En el caso de un índice basado en cero, es el nivel más bajo.
SELECT
DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]},,0) ON COLUMNS
FROM [Adventure Works]
Observe que el conjunto de resultados es idéntico al de la consulta anterior. Por regla general, no es necesario establecer el nivel del índice a menos que se desee que los detalles empiecen en un nivel concreto. Vuelva a ejecutar la consulta anterior, estableciendo el valor del índice en 1 y, después, en 2. Con el valor del índice establecido en 1, los detalles empiezan en el segundo nivel de la jerarquía. Con el valor del índice establecido en 2, los detalles empiezan en el tercer nivel, que es el nivel más alto en este ejemplo. Cuanto más alta es la expresión numérica, más alto es el nivel del índice.
Ejemplo 3: muestra una expresión de nivel
En el ejemplo siguiente se muestra cómo usar una expresión de nivel. Con un conjunto dado que represente una estructura jerárquica, el uso de una expresión de nivel le permite elegir un nivel de la jerarquía para empezar el aumento de los detalles.
En este ejemplo, el nivel del aumento de detalles empieza en [City], como el segundo argumento de la función DrilldownLevel. Al ejecutar esta consulta, el aumento de detalles empieza en el nivel [City], para los estados de Washington y Oregón. Como consecuencia de la función DrilldownLevel, el conjunto de resultados incluye también los miembros del siguiente nivel inferior, [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: inclusión de miembros calculados
En el último ejemplo se muestra un miembro calculado, que aparece al final del conjunto de resultados cuando se agrega la marca include_calculated_members. Observe que la marca se especifica como cuarto parámetro.
Este ejemplo funciona porque el miembro calculado está en el mismo nivel que los miembros no calculados. El miembro calculado [West Coast] está formado por miembros de [United States] más todos los miembros que están 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 se quita la marca y se vuelva a ejecutar la consulta, se obtienen los mismos resultados, menos el miembro calculado, [West Coast].