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.
Los ejes de consulta especifican los bordes de un conjunto de celdas devuelto por una instrucción SELECT de expresiones multidimensionales (MDX). Especificar los bordes de un conjunto de celdas permite restringir los datos devueltos que son visibles para el cliente.
Para especificar ejes de consulta, utilice el <SELECT query axis clause> para asignar un conjunto a un eje de consulta determinado. Cada <SELECT query axis clause> valor define un eje de consulta. El número de ejes del conjunto de datos es igual al número de valores de <SELECT query axis clause> la instrucción SELECT.
Sintaxis del eje de consulta
La sintaxis siguiente muestra la sintaxis de <SELECT query axis clause>:
<SELECT query axis clause> ::=
[ NON EMPTY ] Set_Expression [ <SELECT dimension property list clause> ] [<HAVING clause>]
ON {
Integer_Expression |
AXIS( Integer_Expression ) |
{COLUMNS | ROWS | PAGES | SECTIONS | CHAPTERS}
}
Cada eje de consulta tiene un número: cero (0) para el eje x, 1 para el eje Y, 2 para el eje z, etc. En la sintaxis de <SELECT query axis clause>, el Integer_Expression valor especifica el número de eje. Una consulta MDX puede admitir hasta 128 ejes especificados, pero muy pocas consultas MDX usarán más de 5 ejes. Para los primeros 5 ejes, se pueden usar los alias COLUMNS, ROWS, PAGES, SECTIONS y CHAPTERS.
Una consulta MDX no puede omitir los ejes de consulta. Es decir, una consulta que incluya uno o varios ejes de consulta no debe excluir ejes con números inferiores ni intermedios. Por ejemplo, una consulta no puede tener un eje ROWS sin un eje COLUMNS o tener ejes COLUMNS y PAGES sin un eje ROWS.
Puede especificar una cláusula SELECT sin ningún eje (es decir, una cláusula SELECT vacía). En este caso, todas las dimensiones son dimensiones de segmentación y la consulta MDX selecciona una celda.
En la sintaxis del eje de consulta mostrada anteriormente, cada Set_Expression valor especifica el conjunto que define el contenido del eje de consulta. Para obtener más información sobre conjuntos, consulte Trabajar con miembros, tuplas y conjuntos (MDX).
Ejemplos
La siguiente instrucción SELECT simple devuelve la medida Monto de Ventas por Internet en el eje Columnas y usa la función MDX MEMBERS para devolver todos los miembros de la jerarquía Calendar en la dimensión Date del eje Filas:
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
{[Date].[Calendar].MEMBERS} ON ROWS
FROM [Adventure Works]
Las dos consultas siguientes devuelven exactamente los mismos resultados, pero muestran el uso de números de eje en lugar de alias:
SELECT {[Measures].[Internet Sales Amount]} ON 0,
{[Date].[Calendar].MEMBERS} ON 1
FROM [Adventure Works]
SELECT {[Measures].[Internet Sales Amount]} ON AXIS(0),
{[Date].[Calendar].MEMBERS} ON AXIS(1)
FROM [Adventure Works]
La palabra clave NON EMPTY, que se usa antes de la definición de conjunto, es una manera fácil de quitar todas las tuplas vacías de un eje. Por ejemplo, en los ejemplos que hemos visto hasta ahora no hay datos en el cubo a partir de agosto de 2004. Para quitar todas las filas del conjunto de celdas que no tienen datos en ninguna columna, basta con agregar NO VACÍO antes de definir el conjunto en la definición del eje Filas como se indica a continuación:
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
NON EMPTY
{[Date].[Calendar].MEMBERS} ON ROWS
FROM [Adventure Works]
NON EMPTY se puede usar en todos los ejes de una consulta. Comparar los resultados de las dos consultas siguientes: la primera no utiliza NON EMPTY y la segunda sí lo utiliza en ambos ejes.
SELECT {[Measures].[Internet Sales Amount]}
* [Promotion].[Promotion].[Promotion].MEMBERS
ON COLUMNS,
{[Date].[Calendar].[Calendar Year].MEMBERS} ON ROWS
FROM [Adventure Works]
WHERE([Product].[Subcategory].&[19])
SELECT NON EMPTY {[Measures].[Internet Sales Amount]}
* [Promotion].[Promotion].[Promotion].MEMBERS
ON COLUMNS,
NON EMPTY
{[Date].[Calendar].[Calendar Year].MEMBERS} ON ROWS
FROM [Adventure Works]
WHERE([Product].[Subcategory].&[19])
La cláusula HAVING se puede usar para filtrar el contenido de un eje en función de un criterio específico; es menos flexible que otros métodos que pueden lograr los mismos resultados, como la función FILTER, pero es más fácil de usar. Este es un ejemplo que devuelve solo las fechas en las que Internet Sales Amount es mayor que $15.000:
SELECT {[Measures].[Internet Sales Amount]}
ON COLUMNS,
NON EMPTY
{[Date].[Calendar].[Date].MEMBERS}
HAVING [Measures].[Internet Sales Amount]>15000
ON ROWS
FROM [Adventure Works]