Compartir a través de


Consulta MDX básica (MDX)

La consulta básica de expresiones multidimensionales (MDX) es la instrucción SELECT, la consulta que se usa con más frecuencia en MDX. Al comprender cómo una instrucción MDX SELECT debe especificar un conjunto de resultados, cuál es la sintaxis de la instrucción SELECT y cómo crear una consulta simple mediante la instrucción SELECT, tendrá una comprensión sólida de cómo usar MDX para consultar datos multidimensionales.

Especificar un conjunto de resultados

En MDX, la instrucción SELECT especifica un conjunto de resultados que contiene un subconjunto de datos multidimensionales que se han devuelto desde un cubo. Para especificar un conjunto de resultados, una consulta MDX debe contener la siguiente información:

  • Número de ejes que desea que contenga el conjunto de resultados. Puede especificar hasta 128 ejes en una consulta MDX.

  • Conjunto de miembros o tuplas que se van a incluir en cada eje de la consulta MDX.

  • Nombre del cubo que establece el contexto de la consulta MDX.

  • Conjunto de miembros o tuplas que se van a incluir en el eje del segmentador. Para más información sobre los ejes de segmentación y de consulta, veaRestringir la consulta con ejes de consulta y de segmentación (MDX).

Para identificar los ejes de consulta, el cubo que se interrogará y el eje de segmentación, la instrucción MDX SELECT utiliza las siguientes cláusulas:

  • Cláusula SELECT que determina los ejes de consulta de una instrucción MDX SELECT. Para obtener más información sobre la construcción de ejes de consulta en una cláusula SELECT, vea Especificar el contenido de un eje de consulta (MDX).

  • Cláusula FROM que determina qué cubo se consultará. Para obtener más información sobre la cláusula FROM, vea SELECT Statement (MDX).

  • Cláusula WHERE opcional que determina qué miembros o tuplas se van a usar en el eje del segmentador para restringir los datos devueltos. Para obtener más información sobre la construcción de un eje de segmentación en una cláusula WHERE, vea Especificar el contenido de un eje de segmentación (MDX).

Nota:

Para obtener información más detallada sobre las distintas cláusulas de la instrucción SELECT, vea Instrucción SELECT (MDX) .

Sintaxis de instrucción SELECT

La sintaxis siguiente muestra una instrucción SELECT básica que incluye 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 admite sintaxis opcional, como la palabra clave WITH, el uso de funciones MDX para crear miembros calculados que se incluyan en un eje o un eje de segmentación, y la capacidad de devolver los valores de propiedades específicas de celda como parte de la consulta. Para obtener más información sobre la instrucción MDX SELECT, vea Instrucción SELECT (MDX) .

Comparación de la sintaxis de la instrucción SELECT MDX con SQL

El formato de sintaxis de la instrucción SELECT MDX es similar al de la sintaxis SQL. Sin embargo, hay varias diferencias fundamentales:

  • La sintaxis MDX distingue los conjuntos rodeando tuplas o miembros con llaves (los caracteres {y}). Para obtener más información sobre la sintaxis de miembros, tuplas y conjuntos, vea Trabajar con miembros, tuplas y conjuntos (MDX).

  • Las consultas MDX pueden tener 0, 1, 2 o hasta 128 ejes de consulta en la instrucción SELECT. Cada eje se comporta exactamente de la misma manera, a diferencia de SQL, donde hay diferencias significativas entre cómo se comportan las filas y las columnas de una consulta.

  • Al igual que con una consulta SQL, la cláusula FROM asigna un nombre al origen de los datos de la consulta MDX. Sin embargo, la cláusula MDX FROM está restringida a un único cubo. La información de otros cubos se puede recuperar por valor mediante la función LookupCube.

  • La cláusula WHERE define el eje de cortador en una consulta MDX. Actúa como un eje invisible y adicional en la consulta, segmentando los valores que aparecen en las celdas del conjunto de resultados; a diferencia de la cláusula WHERE de SQL, no afecta directamente a lo que aparece en el eje de filas de la consulta. La funcionalidad de la cláusula WHERE de SQL está disponible a través de otras funciones MDX, como la función FILTER.

Ejemplo de instrucción SELECT

En el ejemplo siguiente se muestra una consulta MDX básica que usa la instrucción SELECT. Esta consulta devuelve un conjunto de resultados que contiene los importes de ventas y impuestos de 2002 y 2003 para los territorios de ventas del suroeste.

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 la siguiente información del conjunto de resultados:

  • La cláusula SELECT establece los ejes de consulta como los miembros "Cantidad de Ventas" y "Monto de Impuestos" de la dimensión "Medidas" y los miembros "2002" y "2003" de la dimensión "Fecha".

  • La cláusula FROM indica que el origen de datos es el cubo Adventure Works.

  • La cláusula WHERE define el eje de segmentación como el miembro Suroeste de la dimensión del territorio de ventas.

Observe que en el ejemplo de consulta también se usan los alias de eje COLUMNS y ROWS. Las posiciones ordinales de estos ejes también podrían haberse utilizado. En el ejemplo siguiente se muestra cómo se podría escribir la consulta MDX para usar la posición ordinal de cada eje:

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, vea Especificar el contenido de un eje de consulta (MDX) y Especificar el contenido de un eje de segmentación (MDX).

Véase también

Conceptos clave en MDX (Analysis Services)
Instrucción SELECT (MDX)