在mdx查询中排序

时间:2014-12-12 13:59:16

标签: sql-server mdx analysis

我想只按列中的一个元素排序,但是我已按两个元素编写的代码:

这是我的问题:

SELECT 
  NON EMPTY 
    {
      CrossJoin
      (
        [Data Zameldowania].[Data zameldowania].[Miesiac slownie]
       ,[Data Zameldowania].[Rok].[Rok]
      )
    } ON 0
 ,NON EMPTY 
    {[Pokoj].[Typ].[Typ]} ON 1
FROM [Hurtownia Danych]
WHERE 
  [Measures].[Rezerwacja Count];

以下是我的查询的输出:

enter image description here

这是我尝试做的,但它不起作用:

  NON EMPTY 
    Order
    (
      {
        CrossJoin
        (
          [Data Zameldowania].[Data zameldowania].[Miesiac slownie]
         ,[Data Zameldowania].[Rok].[Rok]
        )
      }
     ,desc
    ) ON 0

只能在" [Miesiac slownie]"?如果是这样我可以做到这一点?我将非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

试试这个:

在查询前添加:

WITH MEMBER [MEASURES].[X] AS
    [Data Zameldowania].[Data zameldowania].[Miesiac slownie].membervalue 

然后将您的订单代码段修改为:

NON EMPTY 
Order
(
    [Data Zameldowania].[Data zameldowania].[Miesiac slownie] *
    [Data Zameldowania].[Rok].[Rok],
 [MEASURES].[X]
 ,bdesc  //<< changed to break natural hier order
) ON 0

第二次尝试。请尝试使用会员名称属性。请尝试以下

在查询前添加:

WITH MEMBER [MEASURES].[X] AS
    [Data Zameldowania].[Data zameldowania].[Miesiac slownie].CurrentMember.PROPERTIES("Name")

然后将您的订单代码段修改为:

NON EMPTY 
Order
(
    [Data Zameldowania].[Data zameldowania].[Miesiac slownie] *
    [Data Zameldowania].[Rok].[Rok],
 [MEASURES].[X]
 ,bdesc  //<< changed to break natural hier order
) ON 0