La consulta utilizada con más frecuencia en MDX (Miltidimensional Expressions) es: la instrucción SELECT en MDX. Entendiendo como especifica un conjunto de resultados, como es su sintaxis y como crear una consulta simple, usted tendrá una comprensión solida de como usar este lenguaje para consultar datos multidimensionales.
Especificando un conjunto de resultados
En el lenguaje MDX, la instrucción SELECT especifica un conjunto de resultados que contiene un subconjunto de datos multidimensionales retornan a partir de un cubo. Para especificar un conjunto de resultados, la consulta MDX debe contener las siguientes informaciones:
- El número de ejes que usted desea que el conjunto de resultados tenga. Es posible especificar hasta 128 ejes en una consulta MDX.
- El conjunto de miembros o tuple a ser incluidos en cada eje de la consulta MDX.
- El nombre del cubo que define el contexto de la consulta MDX.
- El conjunto de miembros o tuple a ser incluido en el eje de la segmentación de datos. Para obtener más informaciones sobre ejes de consulta y de segmentación de datos, consulte Restricción de consulta con los ejes de consulta y de segmentación de datos (MDX).
Para identificar los ejes de consulta, el cubo que será consultado y el eje de la segmentación de datos, la instrucción MDX SELECT usa las siguientes clausulas:
Una clausula SELECT que determina los ejes de consulta de una instrucción MDX SELECT. Para obtener más informaciones sobre la construcción de ejes de consulta en una cláusula SELECT, consulte Especificación del contenido de un eje de consulta (MDX)
Una clausula FROM que determina cual cubo será consultado. Para obtener más informaciones sobre la cláusula FROM, consulte Instrucción SELECT (MDX).
Una cláusula WHERE opcional que determina cuales miembros o tuples usada en el eje de la segmentación de datos para restringir los datos devueltos. Para obtener más informaciones sobre la construcción de ejes de segmentación de datos en una clausula WHERE, consulte Especificación del contenido de un eje de segmentación de datos (MDX).
Observación
Para obtener informaciones más detalladas sobre las diferentes clausulas de instrucción SELECT, consulte Instrucción SELECT (MDX).
Sintaxis de la instrucción SELECT
La sintaxis a seguir muestra una instrucción SELECT básica, incluyendo el uso de las cláusulas SELECT, FROM y WHERE:
[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ]
SELECT [ * | ( <SELECT query axis clause>
[ , <SELECT query axis clause> ... ] ) ]
FROM <SELECT subcube clause>
[ <SELECT slicer axis clause> ]
[ <SELECT cell property list clause> ]
La instrucción MDX SELECT ofrece soporte a la sintaxis opcional, como la palabra clave WITH, al uso de funciones MDX para crear miembros calculados para inclusión en el eje o en el eje de lasegmentación de datos y la capacidad de refresar los valores de las propiedades de las celdas especificas como parte de la consulta. Para obtener más informaciones sobre la instrucción MDX SELECT, consulte instrucción SELECT MDX.
Comparando la sintaxis de la instrucción MDX SELECT con el SQL
El formato de la sintaxis de la instrucción MDX SELECT es similar a la sintaxis del SQL. Sin embargo, hay varias diferencias fundamentales:
- La sintaxis MDX distingue los conjuntos encerrando tuples o miembros entre claves (los caracteres { e }). Para obtener más informaciones sobre miembros, tuples y conjunto de sintaxis, consulta Como trabajar con miembros, tuples y conjuntos (MDX).
- Las consultas MDX tienen 0, 1, 2 o hasta 128 ejes de consulta en la instrucción SELECT. Cada eje se comporta exactamente de la misma manera, diferente del SQL, donde hay diferencias significativas entre el comportamiento de las líneas y de las columnas de una consulta.
- Como con una consulta SQL, la clausula FROM nombra la fuente de los datos para la consulta MDX. Sin embargo, la clausula MDX FROM es restringida a un único cubo. Informaciones de otros cubos pueden ser recuperadas valor a valor usando la función LookupCube.
- La cláusula WHERE describe el eje de la segmentación de datos en una consulta MDX. Ella actúa como un eje extra, invisible en la consulta, segmentando los valores que aparecen en las células del conjunto de resultados; diferente de la cláusula WHERE del SQL, ella no afecta directamente el que aparece en los ejes de las líneas de la consulta. La funcionalidad de la cláusula WHERE del SQL está disponible por medio de otras funciones MDX, como la función FILTER.
Ejemplo de instrucción SELECT
El ejemplo a seguir muestra una consulta MDX básica que usa la instrucción SELECT. Ella regresa a un conjunto de resultados que contienen los valores de ventas y tributos de 2002 y 2003 de la región sudoeste
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON COLUMNS,
{ [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] } ON ROWS
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )
En este ejemplo, la consulta define las siguientes informaciones del conjunto de resultados:
- La cláusula SELECT define los ejes de la consulta como los miembros Valor de Ventas y Valor de Tributos de la dimensión Medidas y los miembros 2002 y 2003 de la dimensión Fecha.
- La cláusula FROM indica que la fuente de datos es el cubo Adventure Works.
- La cláusula WHERE define el eje del slicer como el miembro Sudoeste de la dimensión Región de ventas.
Observe que el ejemplo de consulta también usa las alianzas de eje COLUMNAS y ROWS. Las posiciones ordinales de esos ejes también pueden ser usadas. El ejemplo a seguir muestra como la consulta MDX pudo ser escrita para usar la posición ordinal de cada eje: Copiar
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON 0,
{ [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] } ON 1
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )
Para obtener ejemplos más detallados, consulte Especificación del contenido de un eje de consulta (MDX) y Especificación del contenido de un eje de segmentación de datos (MDX).