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 basado 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. El aumento del nivel de detalle de tupla es una extensión de OLE DB y devuelve un conjunto de tuplas en vez 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*.Se recomienda utilizar la función Hierarchize para ordenar adecuadamente 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. Dado que DrillupMember solo explora en profundidad aquellos miembros seguidos inmediatamente por descendientes del primer conjunto, no se muestra en profundidad el miembro 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 tercer ejemplo se muestra cómo el uso de Hierarchize puede mitigar los efectos del orden de los miembros y permite explorar en profundidad el miembro 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]