Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
SELECT 
      {Date.[2001], Date.[2002]} ON COLUMNS,
      {
        (Location.[Brazil], Products.[Mountain Bikes].[Professional]),
        (Location.[Brazil], Products.[Mountain Bikes].[Recreational]),
        (Location.[Spain], Products.[Mountain Bikes].[Professional]),
        (Location.[Spain], Products.[Mountain Bikes].[Recreational])
      } ON ROWS 
FROM  Demo
WHERE (Measures.[Units Sold])

En esta consulta, se plantea por enumeración las combinaciones que nos interesan. El eje de las filas contiene 2 dimensiones, ubicación (Location) y productos (Products). Se puede decir que la dimensión producto está anidada en la dimensión ubicación y se tienen todas las combinaciones de los 2 elementos de interes de cada una de las 2 dimensiones, lo que hace que se tengan 4 tuplas en el eje de las filas. Una tupla en MDX es una combinación de miembros de dimensiones originados de dimensiones diferentes.

...

Code Block
SELECT 
      {Date.[2001], Date.[2002]} ON COLUMNS,
      CrossJoin(
                {Location.children}, 
                {Products.[Mountain Bikes].children}) ON ROWS 
FROM  Demo
WHERE (Measures.[Units Sold])

CrossJoin() espera como parámetros 2 conjuntos, de manera que si se necesita realizar un anidamiento de más de dos conjuntos, se debe anidar la invocación a dicha función. Por otro lado, hay que tener en cuenta que los 2 conjuntos sobre los cuales se quiere hacer el producto cartesiano deben originarse a partir de dimensiones diferentes.

...