DrillupMember (MDX)
Devuelve los miembros de un conjunto especificado que no son descendientes de miembros de un segundo conjunto especificado.
Sintaxis
DrillupMember(Set_Expression1, Set_Expression2)
Argumentos
Set_Expression1
Expresión MDX (Expresiones multidimensionales) válida que devuelve un conjunto.
Set_Expression2
Expresión MDX (Expresiones multidimensionales) válida que devuelve un conjunto.
Comentarios
La función DrillupMember devuelve un conjunto de miembros basados en los miembros especificados en el primer conjunto que son descendientes de miembros del segundo conjunto. El primer conjunto puede tener varias dimensiones, pero el segundo conjunto debe contener un conjunto de una dimensión. Se mantiene el orden entre los miembros originales del primer conjunto. La función crea el conjunto mediante la inclusión únicamente de los miembros del primer conjunto que son descendientes inmediatos de miembros del segundo conjunto. Si el antecesor inmediato de un miembro del primer conjunto no se encuentra en el segundo conjunto, el miembro del primer conjunto se incluye en el conjunto devuelto por esta función. También se incluyen los descendientes del primer conjunto que preceden a un miembro antecesor del segundo conjunto.
El primer conjunto puede contener tuplas en vez de miembros. La exploración en profundidad de tupla es una extensión de OLE DB y devuelve un conjunto de tuplas en lugar de miembros.
Importante
Se reducirá el detalle de un miembro solo si va inmediatamente seguido por un elemento secundario o un descendiente. El orden de los miembros del conjunto es importante para las familias de funciones Drilldown* y Drillup*. Considere la posibilidad de usar la función Hierarchize para ordenar correctamente los miembros del primer conjunto.
Ejemplo
Los tres ejemplos siguientes son idénticos salvo por el segundo conjunto. En el primer ejemplo, el segundo conjunto es Estados Unidos. Como resultado, Colorado se excluye del conjunto de resultados. Es un descendiente de 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]
El segundo ejemplo muestra la importancia del orden de los miembros. Puesto que DrillupMember solo profundiza en los miembros seguidos inmediatamente por descendientes del primer conjunto, no explora en profundidad el miembro de Canadá. Canadá está separada de sus descendientes por Estados Unidos y Colorado. Si vuelve a ordenar los miembros para que Canadá quede directamente encima de Alberta, Alberta y Brunswick se excluirán del conjunto de filas.
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]
En el ejemplo tres se muestra cómo el uso de Hierarchize puede mitigar los efectos del orden de los miembros y explorar en profundidad el miembro de 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]