Consulta MDX: la consulta básicaMDX Query - The Basic Query

Se aplica a: SíSQL Server Analysis Services ningúnAzure Analysis ServicesAPPLIES TO: yesSQL Server Analysis Services noAzure Analysis Services

La consulta de MDX (Expresiones multidimensionales) básica es la instrucción SELECT: la consulta utilizada con más frecuencia en MDX.The basic Multidimensional Expressions (MDX) query is the SELECT statement—the most frequently used query in MDX. Si comprende cómo una instrucción MDX SELECT debe especificar un conjunto de resultados, en qué consiste la sintaxis de la instrucción SELECT y cómo crear una consulta simple mediante la instrucción SELECT, tendrá un conocimiento sólido de cómo utilizar MDX para realizar consultas de datos multidimensionales.By understanding how an MDX SELECT statement must specify a result set, what the syntax of the SELECT statement is, and how to create a simple query using the SELECT statement, you will have a solid understanding of how to use MDX to query multidimensional data.

Especificar un conjunto de resultadosSpecifying a Result Set

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.In MDX, the SELECT statement specifies a result set that contains a subset of multidimensional data that has been returned from a cube. Para especificar un conjunto de resultados, una consulta MDX debe contener la siguiente información:To specify a result set, an MDX query must contain the following information:

  • El número de ejes que desea que el conjunto de resultados contenga.The number of axes that you want the result set to contain. Puede especificar hasta 128 ejes en una consulta de MDX.You can specify up to 128 axes in an MDX query.

  • El conjunto de miembros o tuplas que se incluyen en cada eje de la consulta de MDX.The set of members or tuples to include on each axis of the MDX query.

  • El nombre del cubo que define el contexto de la consulta de MDX.The name of the cube that sets the context of the MDX query.

  • El conjunto de miembros o tuplas que se incluyen en el eje segmentador.The set of members or tuples to include on the slicer axis. Para obtener más información sobre los ejes de consulta y segmentador, vea Restringir la consulta con ejes de consulta y segmentador (MDX).For more information about slicer and query axes, seeRestricting the Query with Query and Slicer Axes (MDX).

    Para identificar los ejes de consulta, el cubo que se consultará y el eje segmentador, la instrucción MDX SELECT utiliza las cláusulas siguientes:To identify the query axes, the cube that will be queried, and the slicer axis, the MDX SELECT statement uses the following clauses:

  • Una cláusula SELECT que determina los ejes de consulta de una instrucción MDX SELECT.A SELECT clause that determines the query axes of an MDX SELECT statement. Para obtener más información sobre la construcción de los ejes de consulta en una cláusula SELECT, vea Especificar el contenido de un eje de consulta (MDX).For more information about the construction of query axes in a SELECT clause, see Specifying the Contents of a Query Axis (MDX).

  • Una cláusula FROM que determina qué cubo se consultará.A FROM clause that determines which cube will be queried. Para obtener más información sobre la cláusula FROM, vea SELECT Statement (MDX).For more information about the FROM clause, see SELECT Statement (MDX).

  • Una cláusula WHERE opcional que determina qué miembros o tuplas se utilizarán en el eje segmentador para restringir los datos devueltos.An optional WHERE clause that determines which members or tuples to use on the slicer axis to restrict the data returned. Para obtener más información sobre la construcción de un eje segmentador en una cláusula WHERE, vea Especificar el contenido de un eje de división en sectores (MDX).For more information about the construction of a slicer axis in a WHERE clause, see Specifying the Contents of a Slicer Axis (MDX).

Nota

Para obtener más información detallada sobre las distintas cláusulas de la instrucción SELECT, vea SELECT (Instrucción, MDX).For more detailed information about the various clauses of the SELECT statement, see SELECT Statement (MDX).

Sintaxis de la instrucción SELECTSELECT Statement Syntax

En la sintaxis siguiente se muestra una instrucción SELECT básica que incluye el uso de las cláusulas SELECT, FROM y WHERE:The following syntax shows a basic SELECT statement that includes the use of the SELECT, FROM, and WHERE clauses:

[ 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 una sintaxis opcional, como la palabra clave WITH, el uso de funciones de MDX para crear miembros calculados incluyéndolos en un eje o en un eje segmentador, y la capacidad de devolver los valores de propiedades específicas de celda como parte de la consulta.The MDX SELECT statement supports optional syntax, such as the WITH keyword, the use of MDX functions to create calculated members for inclusion in an axis or slicer axis, and the ability to return the values of specific cell properties as part of the query. Para obtener más información sobre la instrucción MDX SELECT, vea SELECT Statement (MDX).For more information about the MDX SELECT statement, see SELECT Statement (MDX).

Comparar la sintaxis de la instrucción MDX SELECT con SQLComparing the Syntax of the MDX SELECT Statement to SQL

El formato de la sintaxis de la instrucción MDX SELECT es similar al de la sintaxis de SQL.The syntax format for the MDX SELECT statement is similar to that of SQL syntax. Sin embargo, hay varias diferencias fundamentales:However, there are several fundamental differences:

  • La sintaxis MDX distingue conjuntos rodeando tuplas o miembros con llaves ({ }). Para obtener más información sobre la sintaxis de miembros, tuplas y conjuntos, vea Trabajar con miembros, tuplas y conjuntos (MDX).MDX syntax distinguishes sets by surrounding tuples or members with braces (the { and } characters.) For more information about member, tuple, and set syntax, see Working with Members, Tuples, and Sets (MDX).

  • Las consultas de MDX pueden tener 0, 1, 2 ó hasta 128 ejes de consulta en la instrucción SELECT.MDX queries can have 0, 1, 2 or up to 128 query axes in the SELECT statement. Cada eje se comporta exactamente de la misma manera, a diferencia de en SQL, donde hay diferencias significativas entre el modo en que se comportan las filas y las columnas de una consulta.Each axis behaves in exactly the same way, unlike SQL where there are significant differences between how the rows and the columns of a query behave.

  • Al igual que con una consulta de SQL, la cláusula FROM da nombre al origen de los datos de la consulta de MDX.As with an SQL query, the FROM clause names the source of the data for the MDX query. Sin embargo, la cláusula MDX FROM está restringida a un solo cubo.However, the MDX FROM clause is restricted to a single cube. Se puede recuperar información de otros cubos, utilizando la función LookupCube valor por valor.Information from other cubes can be retrieved on a value-by-value basis by using the LookupCube function.

  • La cláusula WHERE describe el eje segmentador de una consulta de MDX.The WHERE clause describes the slicer axis in an MDX query. Actúa como un eje invisible, un eje adicional en la consulta, dividiendo los valores que aparecen en las celdas del conjunto de resultados; a diferencia de la cláusula WHERE de SQL, que no afecta directamente a lo que aparece en el eje de las filas de la consulta.It acts as something like an invisible, extra axis in the query, slicing the values that appear in the cells in the result set; unlike the SQL WHERE clause it does not directly affect what appears on the rows axis of the query. La funcionalidad de la cláusula WHERE de SQL está disponible a través de otras funciones de MDX como FILTER.The functionality of the SQL WHERE clause is available through other MDX functions such as the FILTER function.

Ejemplo de instrucción SELECTSELECT Statement Example

En el siguiente ejemplo se muestra una consulta de MDX básica que utiliza la instrucción SELECT.The following example shows a basic MDX query that uses the SELECT statement. Esta consulta devuelve un conjunto de resultados que contiene las cifras de ventas e impuestos de 2002 y 2003 de la zona de ventas sudoeste.This query returns a result set that contains the 2002 and 2003 sales and tax amounts for the Southwest sales territories.

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:In this example, the query defines the following result set information:

  • La cláusula SELECT establece los ejes de la consulta en los miembros Sales Amount y Tax Amount de la dimensión Measures, y los miembros 2002 y 2003 de la dimensión Date.The SELECT clause sets the query axes as the Sales Amount and Tax Amount members of the Measures dimension, and the 2002 and 2003 members of the Date dimension.

  • La cláusula FROM indica que el origen de datos es el cubo Adventure Works.The FROM clause indicates that the data source is the Adventure Works cube.

  • La cláusula WHERE define el eje segmentador como el miembro Southwest de la dimensión Sales Territory.The WHERE clause defines the slicer axis as the Southwest member of the Sales Territory dimension.

    Observe que el ejemplo de consulta utiliza también los alias de los ejes COLUMNS y ROWS.Notice that the query example also uses the COLUMNS and ROWS axis aliases. Las posiciones ordinales para estos ejes también podrían haberse utilizado.The ordinal positions for these axes could also have been used. En el siguiente ejemplo se muestra cómo podría haberse escrito la consulta de MDX para que utilizara la posición ordinal de cada eje:The following example shows how the MDX query could have been written to use the ordinal position of each axis:

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 detallados, vea Especificar el contenido de un eje de consulta (MDX) y Especificar el contenido de un eje de división en sectores (MDX).For more detailed examples, see Specifying the Contents of a Query Axis (MDX)and Specifying the Contents of a Slicer Axis (MDX).

Vea tambiénSee Also

Conceptos clave de MDX & #40; Analysis Services & #41; Key Concepts in MDX (Analysis Services)
Instrucción SELECT & #40; MDX & #41;SELECT Statement (MDX)