Conceptos clave de MDX (MDX)

Puede utilizar MDX (Expresiones multidimensionales) para consultar datos multidimensionales o para crear expresiones MDX para su uso en un cubo, aunque primero es necesario que comprenda los conceptos y la terminología de dimensión de MicrosoftSQL ServerAnalysis Services. En la siguiente sección encontrará una descripción breve de los conceptos básicos del modelado dimensional y la terminología necesaria. En las secciones que aparecen a continuación se explica cómo aplicar esos conceptos.

Para obtener más información, vea la sección de recursos adicionales de la página SQL Server 2005 – Analysis Services (puede estar en inglés) en el sitio web de Microsoft TechNet. Para obtener más información acerca de los problemas de rendimiento relacionados con los cálculos y las consultas MDX, vea la sección acerca de la forma de escribir expresiones MDX eficaces en la guía de rendimiento de SQL Server 2005 Analysis Services (en inglés).

Términos y conceptos del modelado dimensional

Un cubo de MicrosoftSQL ServerAnalysis Services se organiza a base de medidas, dimensiones y atributos de dimensión. En la tabla siguiente se describen los términos y conceptos del modelado dimensional necesarios para trabajar con el lenguaje de expresiones MDX.

  • Dimensión de base de datos
    Una dimensión de base de datos es una colección de atributos de dimensión relacionados con un atributo clave, que a su vez se relaciona con los hechos de la dimensión de medidas.

  • Atributo de dimensión
    Un atributo de dimensión está enlazado a una o más columnas de una tabla de dimensiones y contiene miembros. Un atributo de dimensión puede contener nombres de clientes, de meses y de productos.

  • Miembro
    Un miembro es un valor de un atributo de dimensión, incluida la dimensión de medidas. Un miembro de una jerarquía puede ser un nivel hoja, un miembro primario, un miembro de datos o un miembro (All).

  • Medida
    Una medida es un valor de una tabla de hechos; también se denomina hecho. Por lo general, también se hace referencia a un valor de la dimensión de medidas como miembro. Las medidas suelen ser valores numéricos, pero también pueden ser valores de cadena.

  • Dimensión de medidas
    Una dimensión de medidas es la dimensión que contiene todas las medidas de un cubo. Una dimensión de medidas en un tipo especial de dimensión en la que los miembros se suelen agregar (generalmente mediante la suma o el recuento) de acuerdo con el miembro actual de cada atributo de dimensión con el cual existe una medida especificada.

  • Grupo de medida
    Un grupo de medida es una colección de medidas relacionadas de un cubo de SQL Server Analysis Services (generalmente medidas de la misma tabla de hechos). En SQL Server Analysis Services, un cubo puede contener varios grupos de medida.

  • Miembro (All)
    El miembro (All) es el valor calculado de todos los miembros de una jerarquía de atributo o una jerarquía definida por el usuario.

  • Miembro calculado
    Un miembro calculado es un miembro de dimensión que se define y calcula en tiempo de consulta. Un miembro calculado puede definirse en una consulta de usuario o en el script de cálculo MDX; se almacena en el servidor. Un miembro calculado corresponde a las filas de la tabla de dimensiones de la dimensión en la que se definen.

  • Miembro de datos
    Un miembro de datos es un miembro secundario asociado a un miembro primario en una jerarquía de elementos primarios y secundarios. Un miembro de datos contiene el valor de datos de su miembro primario, en lugar del valor agregado de los miembros secundarios del elemento primario.

  • Miembro primario
    Un miembro primario es un miembro de una jerarquía de elementos primarios y secundarios que contiene el valor agregado de sus elementos secundarios.

  • Miembro hoja
    Un miembro hoja es un miembro de una jerarquía que no posee miembros secundarios.

  • Miembro secundario
    Un miembro secundario es un miembro de una jerarquía situado por debajo del nivel superior.

  • Atributo clave
    El atributo clave de una dimensión de base de datos es el atributo al cual están vinculados (directa o indirectamente) todos los atributos que no son clave de la dimensión. El atributo clave también suele ser el atributo de granularidad.

  • Atributo de granularidad
    El atributo de una dimensión de cubo que vincula una dimensión con los hechos de un grupo de medida de la dimensión de medidas. Si el atributo de granularidad y el atributo clave son atributos diferentes, los atributos que no son clave deben vincularse, directa o indirectamente, con el atributo de granularidad. Dentro de un cubo, el atributo de granularidad define la granularidad de una dimensión.

  • Dimensión de cubo
    Una dimensión de cubo es una instancia de una dimensión de base de datos de un cubo.

  • Jerarquía de atributo
    Una jerarquía de atributo es una jerarquía de miembros de atributo que contiene los siguientes niveles:

    • Un nivel hoja que contiene cada miembro de atributo distintivo; cada miembro del nivel hoja también se conoce como miembro hoja.

    • Niveles intermedios si la jerarquía de atributo es una jerarquía de elementos primarios y secundarios.

    • Un nivel (All) opcional (IsAggregatable=True) que contiene el valor agregado de los miembros hoja de la jerarquía de atributo; el miembro del nivel (All) también se conoce como miembro (All).

    De forma predeterminada, se define una jerarquía de atributo para cada atributo de dimensión (AttributeHierarchyEnabled=True). Las jerarquías de atributo están visibles de forma predeterminada (AttributeHierarchyVisible=True).

  • Jerarquía equilibrada
    Una jerarquía equilibrada es una jerarquía en la que existe el mismo número de niveles entre el nivel superior y cualquier miembro hoja.

  • Jerarquía desigual
    Vea jerarquía desequilibrada.

  • Jerarquía desequilibrada
    Una jerarquía desequilibrada es una jerarquía en la que existe un número distinto de niveles entre el nivel superior y cualquier nivel hoja. Un ejemplo de una jerarquía desigual es una jerarquía de elementos primarios y secundarios. A una jerarquía desequilibrada también se la denomina jerarquía desigual.

  • Jerarquía de elementos primarios y secundarios
    Una jerarquía de elementos primarios y secundarios es un tipo especial de jerarquía de atributo en la que un atributo de la dimensión se establece en el tipo parent. Una jerarquía de elementos primarios y secundarios es una jerarquía desequilibrada de miembros primarios y secundarios. Una jerarquía de elementos primarios y secundarios contiene los siguientes niveles:

    • Niveles secundarios que contienen los elementos secundarios de los miembros primarios. Los elementos secundarios de un elemento primario incluyen los miembros de atributo que se agregan al miembro primario, incluidos los miembros de datos.

    • Niveles intermedios que contienen miembros primarios.

    • Un nivel (All) opcional (IsAggregatable=True) que contiene el valor agregado de los miembros hoja de la jerarquía de elementos primarios y secundarios; el miembro del nivel (All) también se conoce como miembro (All).

    • Sólo puede existir una jerarquía de elementos primarios y secundarios por dimensión y debe estar relacionada con el atributo clave.

  • Jerarquía definida por el usuario
    Una jerarquía definida por el usuario es una jerarquía equilibrada de jerarquías de atributo que se utiliza para facilitar el examen de los datos de un cubo por parte de los usuarios. Las jerarquías definidas por el usuario no se agregan al espacio del cubo. Los niveles de una jerarquía definida por el usuario pueden ocultarse bajo determinadas circunstancias y aparecer desequilibrados.

  • Relación de atributo
    Una relación de atributo es una relación de uno a varios entre atributos, por ejemplo, una relación entre un atributo de dimensión de estado y de ciudad.

  • Propiedad de miembro
    Una propiedad de miembro es una propiedad de un miembro de atributo, por ejemplo, el sexo de un cliente o el color de un producto.

  • Celda
    Una celda de un cubo es el espacio que existe en la intersección de un miembro de la dimensión de medidas y un miembro de cada jerarquía de atributo de un cubo.

    • Un miembro de la dimensión de medidas puede ser un miembro hoja (un hecho individual) o un miembro agregado (por ejemplo, las ventas agregadas de un año en particular).

    • Un miembro de una dimensión puede ser un miembro hoja, un miembro de datos, un miembro primario o un miembro (All).

  • Espacio de cubo
    El espacio de cubo es el producto de los miembros de las jerarquías de atributo de un cubo con las medidas de un cubo.

  • Subcubo
    Un subcubo es un subconjunto de un cubo que representa una vista filtrada del cubo. Los subcubos pueden definirse con una instrucción Scope en el script de cálculo MDX o en la cláusula de subselección de una consulta MDX.

  • Subcubo con subselección
    Un subcubo definido con una cláusula de subselección en una consulta MDX incluye todos los miembros que existen con la definición de subcubo, lo que conlleva las siguientes consecuencias:

    • La inclusión del miembro (All) de una jerarquía es igual a la inclusión de cada miembro hoja de la jerarquía.

    • La inclusión de cualquier miembro conlleva la de sus antecesores y descendientes.

    • La inclusión de todos los miembros de un nivel en una jerarquía definida por el usuario conlleva la de todos los miembros de la jerarquía definida por el usuario, aunque se puedan excluir los miembros de otras jerarquías que no existen con miembros del nivel (como una ciudad que no contiene clientes).

    • Cada miembro (All) del cubo siempre existe en subcubos creados a partir del mismo.

    • Los valores agregados de un subcubo se calculan visualmente.

Tuplas

Una tupla identifica de forma exclusiva a una celda según una combinación de miembros de atributo que constan de un atributo de cada jerarquía de atributo del cubo. Al definir una tupla en una consulta o expresión MDX, no es necesario incluir explícitamente el miembro de atributo de cada jerarquía de atributo. Si no se incluye de manera explicita un miembro de una jerarquía de atributo en una consulta o expresión, el miembro predeterminado de esa jerarquía de atributo es el miembro de atributo implícitamente incluido en la tupla. A menos que se lo defina explícitamente de otra manera en un cubo, el miembro predeterminado de cada jerarquía de atributo es el miembro (All), si existe. Si no existe un miembro (All) dentro de una jerarquía de atributo, el miembro predeterminado es un miembro del nivel superior de la jerarquía de atributo. La medida predeterminada es la primera medida especificada en el cubo, a menos que se defina explícitamente una medida predeterminada. Para obtener más información, vea Definir un miembro predeterminado y DefaultMember (MDX).

Por ejemplo, la siguiente tupla identifica a una celda única de la base de datos Adventure Works al definir explícitamente un solo miembro de la dimensión de medidas.

(Measures.[Reseller Sales Amount])

El ejemplo anterior identifica de forma exclusiva la celda que consta del miembro Reseller Sales Amount de la dimensión de medidas y el miembro predeterminado de cada jerarquía de atributo del cubo. El miembro predeterminado es el miembro (All) de cada jerarquía de atributo que no sea la jerarquía de atributo Destination Currency. El miembro predeterminado de la jerarquía Destination Currency es US Dollar (este miembro predeterminado se define en el script MDX del cubo Adventure Works).

Nota importanteImportante

El miembro de una jerarquía de atributo de una tupla también se ve afectado por las relaciones definidas entre atributos en una dimensión. Para obtener más información, vea Relaciones de atributo y espacio de cubo a continuación.

La consulta siguiente devuelve el valor de la celda a la que se hace referencia en la tupla especificada en el ejemplo anterior ($80.450,596,98).

SELECT 
Measures.[Reseller Sales Amount] ON COLUMNS 
FROM [Adventure Works]

[!NOTA]

Al especificar un eje para un conjunto (en este caso compuesto por una sola tupla) de una consulta, debe comenzar por especificar un conjunto para el eje de columna antes de especificar un conjunto para el eje de fila. También se puede hacer referencia al eje de columna como eje(0) o sencillamente 0. Para obtener más información acerca de las consultas MDX, vea Consulta de MDX básica (MDX).

Puede utilizar una tupla de una consulta para devolver el valor de la celda a la que se hace referencia en la tupla, como en el ejemplo anterior. De lo contrario, puede utilizar una tupla en una expresión para hacer referencia de forma explícita a los miembros especificados en la tupla. La consulta o la expresión pueden utilizar funciones que devuelvan o consuman tuplas. Una tupla puede utilizarse para hacer referencia al valor de la celda que especifica la tupla o para especificar una combinación de miembros cuando se utilicen en una función.

La dimensionalidad de una tupla hace referencia a la secuencia o el orden de los miembros de la tupla. Debido a que los miembros implícitos siempre aparecen en el mismo orden, se piensa en la dimensionalidad generalmente en relación con los miembros explícitamente definidos de la tupla. El orden de los miembros de la tupla es importante al definir un conjunto de tuplas. El ejemplo siguiente incluye dos miembros de una tupla en el eje de columna.

SELECT 
([Measures].[Reseller Sales Amount],[Date].[Calendar Year].[CY 2004]) ON COLUMNS 
FROM [Adventure Works]

[!NOTA]

Al especificar explícitamente un miembro de una tupla de más de una dimensión, debe incluir toda la tupla entre paréntesis. Cuando sólo se especifica un miembro de una tupla, los paréntesis son opcionales.

La tupla de la consulta del ejemplo anterior especifica la devolución de la celda del cubo en la intersección de la medida Reseller Sales Amount de la dimensión de medidas y el miembro CY 2004 de la jerarquía de atributo Calendar Year de la dimensión Date.

[!NOTA]

Se puede hacer referencia a un miembro de atributo por su nombre de miembro o su clave de miembro. En el ejemplo anterior, se podía reemplazar la referencia a [CY 2004] con &[2004].

Conjuntos

Un conjunto es un conjunto ordenado de tuplas con la misma dimensionalidad. A continuación se muestra un ejemplo de un conjunto.

SELECT 
   {
      ([Measures].[Reseller Sales Amount],
         [Date].[Calendar Year].[CY 2003]),
      ([Measures].[Reseller Sales Amount],
         [Date].[Calendar Year].[CY 2004])
   } ON COLUMNS 
FROM [Adventure Works]

[!NOTA]

Utilice llaves {} para designar un conjunto de tuplas.

En el ejemplo anterior, cada tupla del conjunto posee la misma dimensionalidad debido a que el primer miembro de cada tupla es un miembro de la dimensión de medidas y el segundo miembro de cada tupla es un miembro de la jerarquía de atributo Calendar Year. Si el segundo miembro de las tuplas fuera de una jerarquía de atributo diferente de la dimensión Date (como Calendar Month), recibiría un error referente a la diferencia en la dimensionalidad.

SugerenciaSugerencia

Puede crear un conjunto con un alias, lo que se conoce como un conjunto con nombre. El uso de un conjunto con nombre hace que la consulta MDX sea más fácil de comprender o de volver a utilizar al trabajar con expresiones MDX complejas. Para utilizar un conjunto con nombre, emplee la palabra "AS" seguida del nombre de alias deseado después del fin del identificador de conjunto.

Espacio de cubo y Autoexist

En este mismo tema, se ha definido espacio de cubo como el producto de los miembros de sus jerarquías de atributo. El concepto de Autoexist limita este espacio de cubo a aquellas celdas que realmente existen. Los miembros de una jerarquía de atributo de una dimensión pueden no existir con los miembros de otra jerarquía de atributo de la misma dimensión.

Por ejemplo, si tiene un cubo con una jerarquía de atributo City, una jerarquía de atributo Country y una medida Internet Sales Amount, el espacio de este cubo sólo incluye a los miembros que existen entre sí. Por ejemplo, si la jerarquía de atributo City incluye las ciudades de Nueva York, Londres, París, Tokio y Melbourne; y la jerarquía de atributo Country incluye los países Estados Unidos, Reino Unido, Francia, Japón y Australia; entonces el espacio del cubo no incluye el espacio (celda) en la intersección de París y Estados Unidos.

Al consultar las celdas que no existen, las celdas no existentes devuelven valores nulos; es decir, no pueden contener cálculos y no se puede definir un cálculo que escriba en este espacio. Por ejemplo, la siguiente instrucción incluye celdas que no existen.

SELECT [Customer].[Gender].[Gender].Members ON COLUMNS,
{[Customer].[Customer].[Aaron A. Allen]
   ,[Customer].[Customer].[Abigail Clark]} ON ROWS 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

[!NOTA]

La consulta utiliza la función Members (Conjunto, MDX) para devolver el conjunto de miembros de la jerarquía de atributo Gender en el eje de columna y cruza este conjunto con el conjunto especificado de miembros de la jerarquía de atributo Customer en el eje de fila.

Cuando se ejecuta la consulta anterior, la celda en la intersección de Aaron A. Allen y Female muestra un valor nulo. De igual manera, la celda en la intersección de Abigail Clark y Male muestra un valor nulo. Estas celdas no existen y no pueden contener un valor, pero las celdas que no existen pueden aparecer en el resultado devuelto por una consulta.

Cuando se utiliza la función Crossjoin (MDX) para devolver el producto cruzado de los miembros de la jerarquía de atributo de las jerarquías de atributo de la misma dimensión, Autoexist limita las tuplas devueltas al conjunto de tuplas que realmente existen, en lugar de devolver un producto cartesiano completo. Por ejemplo, ejecute y examine los resultados de la ejecución de la siguiente consulta.

SELECT CROSSJOIN
   (
      {[Customer].[Country].[United States]},
         [Customer].[State-Province].Members
  ) ON 0 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

[!NOTA]

Observe que 0 se utiliza para designar al eje de columna, que es una abreviatura para el eje(0), que es el eje de columna.

La consulta anterior sólo devuelve celdas para los miembros de cada jerarquía de atributo de la consulta que existen entre sí. La consulta anterior también puede escribirse mediante la nueva variante * de la función * (Crossjoin) (MDX).

SELECT 
   [Customer].[Country].[United States] * 
      [Customer].[State-Province].Members
ON 0 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

La consulta anterior también se podría escribir de la siguiente manera:

SELECT [Customer].[State-Province].Members
ON 0 
FROM [Adventure Works]
WHERE (Measures.[Internet Sales Amount],
   [Customer].[Country].[United States])

Los valores de celda devueltos serán idénticos, aunque los metadatos del conjunto de resultados serán diferentes. Por ejemplo, con la consulta anterior, la jerarquía Country se movió al eje segmentador (en la cláusula WHERE), por lo que no aparece explícitamente en el conjunto de resultados.

Cada una de estas tres consultas anteriores muestra el efecto del comportamiento de Autoexist en SQL ServerAnalysis Services.

Jerarquías definidas por el usuario y espacio de cubo

Los ejemplos anteriores de este tema definen posiciones en el espacio de cubo mediante jerarquías de atributo. Sin embargo, también se puede definir una posición en un espacio de cubo mediante jerarquías definidas por el usuario que se han definido en base a las jerarquías de atributo de una dimensión. Una jerarquía definida por el usuario es una jerarquía de jerarquías de atributo diseñadas para facilitar la exploración del cubo por parte de los usuarios.

Por ejemplo, la consulta CROSSJOIN de la sección anterior también pudo haber sido escrita de la siguiente manera:

SELECT CROSSJOIN
   (
      {[Customer].[Country].[United States]},
         [Customer].[Customer Geography].[State-Province].Members
   ) 
ON 0 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

En la consulta anterior, la jerarquía definida por el usuario Customer Geography de la dimensión Customer se utiliza para definir la posición en el espacio de cubo que se definió anteriormente mediante una jerarquía de atributo. La posición idéntica en el espacio de cubo puede definirse mediante jerarquías de atributo o jerarquías definidas por el usuario.

Relaciones de atributo y espacio de cubo

El definir relaciones de atributo entre atributos relacionados mejora el rendimiento de las consultas (al facilitar la creación de agregaciones apropiadas) y afecta al miembro de una jerarquía de atributo relacionada que aparece con un miembro de jerarquía de atributo. Por ejemplo, cuando define una tupla que incluye a un miembro de la jerarquía de atributo City y la tupla no define explícitamente al miembro de la jerarquía de atributo Country, se puede esperar que el miembro de la jerarquía de atributo predeterminada Country sea el miembro relacionado de la jerarquía de atributo Country. Sin embargo, esto es cierto sólo si se define una relación de atributo entre la jerarquía de atributo City y la jerarquía de atributo Country.

El ejemplo siguiente devuelve el miembro de una jerarquía de atributo relacionada que no está incluida explícitamente en la consulta.

WITH MEMBER Measures.x AS 
   Customer.Country.CurrentMember.Name
SELECT Measures.x ON 0,
Customer.City.Members ON 1
FROM [Adventure Works]

[!NOTA]

Observe que la palabra clave WITH se utiliza con las funciones CurrentMember (MDX) y Name (MDX) para crear un miembro calculado para su uso en la consulta. Para obtener más información, vea Consulta de MDX básica (MDX).

En la consulta anterior, se devuelve el nombre del miembro de la jerarquía de atributo Country asociado con cada miembro de la jerarquía de atributo State. Aparece el miembro Country esperado (debido a que hay una relación de atributo definida entre los atributos City y Country). Sin embargo, si no se define una relación de atributo entre las jerarquías de atributo de la misma dimensión, se devuelve el miembro (All), como se muestra en la consulta siguiente.

WITH MEMBER Measures.x AS 
   Customer.Education.Currentmember.Name
SELECT Measures.x  ON 0, 
Customer.City.Members ON 1
FROM [Adventure Works]

En la consulta anterior, se devuelve el miembro (All) ("All Customers"), debido a que no hay una relación entre Education y City. Por lo tanto, el miembro (All) de la jerarquía de atributo Education sería el miembro predeterminado de la jerarquía de atributo Education utilizada en cualquier tupla en la que interviniera la jerarquía de atributo City y no se proporcionara explícitamente un miembro Education.

Contexto de cálculo

Cada conjunto, miembro, tupla o función numérica se ejecuta en el contexto de toda la expresión o instrucción MDX. Cuando se pasa un argumento, como una tupla, a una función, sólo se proporcionan explícitamente algunas coordenadas del espacio de cubo. Las otras coordenadas se obtienen en base al contexto de cálculo actual. El contexto de cálculo de las coordenadas de celda y los miembros de atributo que no se han especificado se determina en el siguiente orden:

  1. La cláusula FROM (si corresponde): esta cláusula puede especificar un cubo entero o un subcubo en forma de una instrucción SELECT.

  2. La cláusula WHERE (si corresponde): esta cláusula, que también se conoce como el eje segmentador, en la que se especifica un conjunto, tupla o miembro que limita el número de miembros devuelto en el eje de columna y de fila por una consulta. Conceptualmente, el miembro predeterminado de cada jerarquía de atributo que no se especifica explícitamente en el eje de columna o de fila es parte del eje segmentador.

    [!NOTA]

    Cuando se especifican las coordenadas de celda de un atributo en particular en el eje segmentador y en otro eje, las coordenadas especificadas en la función pueden tener prioridad al determinar los miembros del conjunto en el eje. Las funciones Filter (MDX) y Order (MDX) son ejemplos de tales funciones. Es posible filtrar u ordenar un resultado por miembros de atributo que se excluyen del contexto de cálculo mediante la cláusula WHERE o mediante una instrucción SELECT de la cláusula FROM.

  3. Los conjuntos con nombre y los miembros calculados definidos en la consulta o expresión.

  4. Las tuplas y conjuntos especificados en los ejes de columna y fila, mediante el miembro predeterminado de los atributos que no aparecen en el eje de fila, columna o segmentador.

  5. Las celdas de cubo o subcubo en cada eje, lo que elimina las tuplas vacías del eje y aplica la cláusula HAVING.

  6. Para obtener más información, vea Establecer el contexto de cubo en una consulta (MDX).

  7. En la siguiente consulta, el contexto de cálculo del eje de fila está limitado por el miembro de atributo Country y el miembro de atributo Calendar Year especificados en la cláusula WHERE.

SELECT Customer.City.City.Members ON 0
FROM [Adventure Works]
WHERE (Customer.Country.France, [Date].[Calendar].[Calendar Year].[CY 2004],
   Measures.[Internet Sales Amount])
  1. Sin embargo, si modifica esta consulta al especificar la función FILTER en el eje de fila y utiliza un miembro de jerarquía de atributo Calendar Year en la función FILTER, entonces se puede modificar el miembro de atributo de la jerarquía de atributo Calendar Year que se utiliza para proporcionar el contexto de cálculo para los miembros del conjunto en el eje de columna.
SELECT FILTER
   (
      Customer.City.City.Members, 
         ([Date].[Calendar].[Calendar Year].[CY 2003],
            Measures.[Internet Order Quantity]) > 75 
   ) ON 0
FROM [Adventure Works]
WHERE (Customer.Country.France,
   [Date].[Calendar].[Calendar Year].[CY 2004],
   Measures.[Internet Sales Amount])
  1. En la consulta anterior, el contexto de cálculo para las celdas de las tuplas que aparecen en el eje de columna está filtrado por el miembro CY 2003 de la jerarquía de atributo Calendar Year, a pesar de que el contexto de cálculo nominal para la jerarquía de atributo Calendar Year es CY 2004. Además, está filtrado por la medida Internet Order Quantity. Sin embargo, una vez que se establecen los miembros del conjunto en el eje de columna, el contexto de cálculo de los valores para los miembros que aparecen en el eje se determina nuevamente mediante la cláusula WHERE.
Nota importanteImportante

Para mejorar el rendimiento de la consulta, debe eliminar los miembros y las tuplas lo más pronto posible en el proceso de resolución. De esta manera, los cálculos de tiempo de consulta complejos en el conjunto final de miembros operan en la menor cantidad de celdas posible.

Nota importanteImportante

El paso y orden de resolución en los que se evalúan las expresiones son pertinentes para el valor final de una expresión. Vea Descripción de orden de paso y orden de resolución (MDX) para obtener más información sobre cómo estos valores podrían afectar a los cálculos.