Order

Sintaxis de Order en MDX:

ORDER( «Set», {«String Expression» | «Numeric Expression»} [, ASC | DESC | BASC | BDESC] )

Esta función ordena un conjunto de miembros dependiendo de la expresión, es decir, que puedes por ejemplo ordenar los productos que tienes en tu cubo ascendente o descendentemente por el importe de Pedido. También permite hacer la ordenación basándose en la jerarquia de ese grupo especificando ASC o DESC. En cambio, si quieres ignorar la jerarquía se debe especificar BASC o BDESC.

 

Ejemplo de la función Order en MDX

ORDER ( [Dim Producto].[Categoria Producto].[Producto], [Measures].[Importe Pedido], BDESC )

Este ejemplo ordena de manera descendente el conjunto de productos por el importe de pedidos, ignorando las jerarquias

Para comprobar el resultado hacemos la siguiente query:

with Set [Ordena_Catprod] as
  'ORDER( [Dim Producto].[Categoria Producto].[Producto],
          [Measures].[Importe Pedido], BDESC )'

select Ordena_Catprod on rows, [Measures].[Importe Pedido] on columns
from [Analysis DW]

 

Resultado:

 

En cambio, si no queremos ignorar las jerarquias:

ORDER( [Dim Producto].[Categoria Producto].[Producto], [Measures].[Importe Pedido], DESC )

La query es:

with Set [Ordena_Catprod] as
  'ORDER( [Dim Producto].[Categoria Producto].[Producto],
          [Measures].[Importe Pedido], DESC )'

select Ordena_Catprod on rows, [Measures].[Importe Pedido] on columns
from [Analysis DW]

y el resultado: