Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Perfora los miembros de un conjunto hasta un nivel por debajo del nivel más bajo representado en el conjunto.
Especificar el nivel en el que profundizar es opcional, pero si configuras el nivel, puedes usar una expresión de nivel o el nivel índice. Estos argumentos son mutuamente excluyentes. Finalmente, si los miembros calculados están presentes en la consulta, puedes especificar un argumento para incluirlos en el conjunto de filas.
Sintaxis
DrilldownLevel(Set_Expression [,[Level_Expression] ,[Index]] [,INCLUDE_CALC_MEMBERS])
Argumentos
Set_Expression
Una expresión válida de Expresiones Multidimensionales (MDX) que devuelve un conjunto.
Level_Expression
(Opcional). Una expresión MDX que identifique explícitamente el nivel en el que profundizar. Si especificas una expresión de nivel, omite el argumento índice que aparece a continuación.
Índice
(Opcional). Una expresión numérica válida que especifica el número jerárquico a profundizar dentro del conjunto. Puedes usar el nivel índice en lugar de Level_Expression para identificar explícitamente el nivel en el que profundizar.
Include_Calc_Members
(Opcional). Una bandera que indica si incluir los miembros calculados, en caso de que existan, en el nivel de desplomamiento.
Remarks
La función DrilldownLevel devuelve un conjunto de miembros hijos en un orden jerárquico, basado en los miembros incluidos en el conjunto especificado. El orden se conserva entre los miembros originales del conjunto especificado, excepto que todos los miembros hijos incluidos en el conjunto de resultados de la función se incluyen inmediatamente debajo de su miembro padre.
Dada una estructura de datos jerárquica multinivel, puedes elegir explícitamente un nivel en el que profundizar. Hay dos formas mutuamente excluyentes de especificar el nivel. El primer enfoque es establecer el argumento level_expression usando una expresión MDX que devuelva el nivel. Un enfoque alternativo es especificar el argumento índice usando una expresión numérica que especifique el nivel por número.
Si se especifica una expresión de nivel, la función construye un conjunto en un orden jerárquico recuperando los hijos solo de aquellos miembros que están en el nivel especificado. Si se especifica una expresión de nivel y no hay ningún miembro en ese nivel, se ignora la expresión de nivel.
Si se especifica un valor de índice, la función construye un conjunto en orden jerárquico recuperando los hijos solo de aquellos miembros que están en el siguiente nivel más bajo de la jerarquía referenciado en el conjunto especificado, dado un índice basado en ceros.
Si no se especifica ni una expresión de nivel ni un valor de índice, la función construye un conjunto en orden jerárquico recuperando los hijos solo de aquellos miembros que están en el nivel más bajo de la primera dimensión referenciada en el conjunto especificado.
Consultar la propiedad XMLA MdpropMdxDrillFunctions te permite verificar el nivel de soporte que el servidor ofrece para las funciones de perforación; consulta Propiedades XMLA soportadas (XMLA) para más detalles.
Examples
Puedes probar los siguientes ejemplos en la ventana de consultas MDX en SSMS, usando el cubo Adventure Works.
Ejemplo 1: demuestra una sintaxis mínima
El primer ejemplo muestra la sintaxis mínima de DrilldownLevel. El único argumento requerido es una expresión conjunta. Fíjate que cuando ejecutas esta consulta, bajas el modelo padre [Todas las categorías] y los miembros del siguiente nivel: [Accesorios], [Bicicletas], y así sucesivamente. Aunque este ejemplo es sencillo, demuestra el propósito básico de la función DrilldownLevel , que es profundizar al siguiente nivel inferior.
SELECT DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]}}) ON COLUMNS
FROM [Adventure Works]
Ejemplo 2 - sintaxis alternativa usando un nivel de índice explícito
Este ejemplo demuestra la sintaxis alternativa, donde el nivel del índice se especifica mediante una expresión numérica. En este caso, el nivel í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]
Observa que el conjunto de resultados es idéntico al de la consulta anterior. Como regla general, establecer el nivel del índice no es necesario a menos que quieras que el drill down empiece en un nivel específico. Vuelve a ejecutar la consulta anterior, estableciendo el valor del índice en 1 y luego en 2. Con el valor del índice establecido en 1, ves que el desnivel de profundidad comienza en el segundo nivel de la jerarquía. Con el valor del índice establecido en 2, el análisis de profundidad comienza en el tercer nivel, el nivel más alto en este ejemplo. Cuanto mayor es la expresión numérica, mayor es el nivel de índice.
Ejemplo 3 - demuestra una expresión de nivel
El siguiente ejemplo muestra cómo usar una expresión de nivel. Dado un conjunto que representa una estructura jerárquica, usar una expresión de nivel te permite elegir un nivel en la jerarquía para comenzar el desvío.
En este ejemplo, el nivel de drill down comienza en [City], como el segundo argumento de la función DrilldownLevel . Cuando ejecutes esta consulta, empieza a detallar a nivel de [ciudad], para los estados de Washington y Oregón. Según la función DrilldownLevel , el conjunto de resultados también incluye miembros en el siguiente nivel inferior, [códigos postales].
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 - incluyendo miembros calculados
El último ejemplo muestra un miembro calculado, que aparece al final del conjunto de resultados cuando añades la bandera de include_calculated_members . Fíjate que la bandera 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 [Estados Unidos], más todos los miembros un nivel por debajo de [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]
Si solo eliminas la bandera y vuelves a ejecutar la consulta, obtienes los mismos resultados, menos el miembro calculado, [Costa Oeste].