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: