Сортировка - это боль в MDX, или, по крайней мере, я всегда так к этому относился. Если ваш запрос содержит только одно измерение в строках и одно в столбцах, это значительно упростит жизнь.
Ключевое слово ORDER может быть применено к набору, и вам просто нужно дать ему номер для сортировки и указать, какой путь следует использовать с ASC или DESC.
Проблема ASC или DESC становится запутанной, поскольку вы также можете указать BASC или BDESC. «B» означает «разбить» и говорит, хотите ли вы, чтобы строки (или столбцы) были отсортированы в их иерархических группах, или вы хотите полностью разбить иерархию при сортировке и полностью изменить порядок строк.
Вот простой пример
ORDER({[Time].[Month].members}, [Measures].[Gross Sales], BASC)
Это означает, что вы хотите перечислить все месяцы в порядке возрастания значения валовых продаж. Вы нарушаете иерархию, чтобы месяцы не оставались сгруппированными в пределах их родительских лет и могли быть полностью перемешаны операцией сортировки.