Заказ по запросам MDX?

Это мой запрос MDX.

select
{
    [Measures].[Quantity],
    [Measures].[Net Sales]
}
on columns,
NON EMPTY
{(
    [Products].[Item Description].children,
    [Calendar].[Date].[Date]
)}
on rows
from
(
select 
{
    [Calendar].[Date].&[2015-03-23T00:00:00],
    [Calendar].[Date].&[2015-03-22T00:00:00],
    [Calendar].[Date].&[2015-03-21T00:00:00]
}
ON columns
FROM [SalesReport])

Это дает отчеты о продажах в количестве и чистых продажах, как и ожидалось. Теперь нам нужно отсортировать его, чтобы первым получить элемент с наибольшим количеством. Другими словами, мы хотим применить здесь сортировку по убыванию.

Я пробовал все методы заказа, которые дают мне ошибку. Не могли бы вы помочь мне осуществить мое желание?


person good-to-know    schedule 25.03.2015    source источник


Ответы (2)


Вы пробовали ниже?

select
{
    [Measures].[Quantity],
    [Measures].[Net Sales]
}
on columns,
NON EMPTY
ORDER((
    [Products].[Item Description].children,
    [Calendar].[Date].[Date]
), [Measures].[Quantity], DESC)
on rows
from
(
select 
{
    [Calendar].[Date].&[2015-03-23T00:00:00],
    [Calendar].[Date].&[2015-03-22T00:00:00],
    [Calendar].[Date].&[2015-03-21T00:00:00]
}
ON columns
FROM [SalesReport])

Вторая попытка [РАБОЧЕЕ РЕШЕНИЕ]

select
{
    [Measures].[Quantity],
    [Measures].[Net Sales]
}
on columns,
NON EMPTY
ORDER((
    [Products].[Item Description].children    
), [Measures].[Quantity], DESC)
*[Calendar].[Date].[Date]
on rows
from
(
select 
{
    [Calendar].[Date].&[2015-03-23T00:00:00],
    [Calendar].[Date].&[2015-03-22T00:00:00],
    [Calendar].[Date].&[2015-03-21T00:00:00]
}
ON columns
FROM [SalesReport])
person SouravA    schedule 25.03.2015
comment
НЕПУСТОЙ ЗАКАЗ([Продукты].[Описание товара].children, [Показатели].[Количество], DESC) в строках Это прекрасно работает, но ниже запроса это не работает НЕПУСТОЙ ЗАКАЗ(([Продукты].[Описание товара ].children, [Календарь].[Дата].[Дата] ), [Меры].[Количество], DESC) в строках - person good-to-know; 26.03.2015
comment
Попробуйте мою вторую попытку. - person SouravA; 26.03.2015
comment
@Sourav_Agasti (поднято) Мне нравится это решение. Хотя слегка удивлен, что BDESC не требовалось. - person whytheq; 31.03.2015

Если вы хотите дополнительно заказать внутреннюю группу, вы можете сделать это:

SELECT
{
    [Measures].[Quantity],
    [Measures].[Net Sales]
}
ON 0,
NON EMPTY

  GENERATE(
  ORDER(
  [Products].[Item Description].children 
  ,[Measures].[Quantity], BDESC)
  ,
  ORDER(
  [Products].[Item Description].CURRENTMEMBER  //<< possibly [Products].CURRENTMEMBER
  *
  {[Calendar].[Date].[Date].Members}
  ,[Measures].[Quantity], BDESC))

ON 1
FROM
(
  SELECT
  {
    [Calendar].[Date].&[2015-03-23T00:00:00],
    [Calendar].[Date].&[2015-03-22T00:00:00],
    [Calendar].[Date].&[2015-03-21T00:00:00]
  }
  ON 0
  FROM [SalesReport]
);
person whytheq    schedule 31.03.2015