Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Wiki Markup
{scrollbar}
----
h2. Combinación de varias dimensiones en ejes (anidamiento de dimensiones)

Supongamos que se desea visualizar las unidades vendidas de bicicletas Mountain Bikes profesionales y de recreación en Brasil y España en los años 2001 y 2002.

Esta consulta involucra 3 dimensiones: productos, ubicaciones y fechas. La visualización usando 3 ejes es algo complejo y lo que en general se quiere es presentar esta información siguiendo el formato bi-dimensional y encapsular las 3 dimensiones. La siguiente consulta MDX presenta la información requerida combinando 2 de las dimensiones en un eje.

{code}

...

Combinación de varias dimensiones en ejes (anidamiento de dimensiones)

Supongamos que se desea visualizar las unidades vendidas de bicicletas Mountain Bikes profesionales y de recreación en Brasil y España en los años 2001 y 2002.

Esta consulta involucra 3 dimensiones: productos, ubicaciones y fechas. La visualización usando 3 ejes es algo complejo y lo que en general se quiere es presentar esta información siguiendo el formato bi-dimensional y encapsular las 3 dimensiones. La siguiente consulta MDX presenta la información requerida combinando 2 de las dimensiones en un eje.

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])
{code}

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.

...

Con

...

seguridad

...

que

...

la

...

pregunta

...

que

...

surge

...

aqui

...

es,

...

¿qué

...

pasa

...

si

...

lo

...

que

...

se

...

quiere

...

visualizar

...

es

...

algo

...

análogo

...

pero

...

considerando

...

todas

...

las

...

líneas

...

de

...

bicicletas

...

Mountain

...

Bikes

...

contra

...

todos

...

los

...

países?.

...

Es

...

decir,

...

¿qué

...

brinda

...

MDX,

...

nuevamente,

...

como

...

alternativa

...

a

...

la

...

enumeración?.

...

MDX

...

brinda

...

la

...

función

...

CrossJoin()

...

.

...

Esta

...

función

...

produce

...

todas

...

las

...

combinaciones

...

de

...

2

...

conjuntos

...

(es

...

decir,

...

un

...

"producto

...

cartesiano").

...

Su

...

uso

...

común

...

es

...

para

...

situaciones

...

como

...

la

...

presentada

...

arriba

...

combinando

...

2

...

o

...

mas

...

dimensiones

...

en

...

un

...

único

...

eje

...

a

...

los

...

efectos

...

de

...

visualizar

...

los

...

datos

...

bajo

...

la

...

forma

...

de

...

una

...

matriz

...

bi-dimensional

...

(valga

...

la

...

redundancia).

...

La

...

siguiente

...

consulta

...

permite

...

visualizar

...

la

...

información

...

que

...

surge

...

de

...

la

...

pregunta

...

anterior.

...

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


_

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.

 

Code Block
titleEjemplo de CrossJoin anidado
select {Measures.[Importe neto], Measures.[Unidades (neto)]} on columns,
crossjoin (
    { [Articulos].[linea].members},
    
    crossjoin (
    { [Regional].[regional].members},
    { [Clientes].[canal].members}
    )
    
)  on rows
from [Ventas (modificado)]
where ([Fecha].[Mes actual])

 

Esta función ofrece una combinación interesante de conjuntos obtenibles a partir de las diferentes dimensiones pero su uso debe tener en cuenta que se trata de una función que tiene un impacto potencial importante en la performance de la consulta MDX.

 

Wiki Markup
{scrollbar}