Reporting services 如何在MDX中按多个维度订购金额?

Reporting services 如何在MDX中按多个维度订购金额?,reporting-services,ssrs-2008,ssas,mdx,ssrs-2008-r2,Reporting Services,Ssrs 2008,Ssas,Mdx,Ssrs 2008 R2,在我的立方体中,我有以下度量,维度 **Measure:** Amount **From Customer dimension:** Busines Unit Number Business Unit Description Cust Number Cust Name **From Bucket dimension:** Bucket 我希望金额按所有这些维度/属性排序 到目前为止,我在MDX中尝试的是 SELECT NON EMPTY { [Measures].[Amoun

在我的立方体中,我有以下度量,维度

**Measure:**
Amount

**From Customer dimension:**
Busines Unit Number
Business Unit Description
Cust Number
Cust Name

**From Bucket dimension:**
Bucket
我希望金额按所有这些维度/属性排序

到目前为止,我在MDX中尝试的是

SELECT 
NON EMPTY { 

    [Measures].[Amount] 

} ON COLUMNS, 

NON EMPTY { (
ORDER(
    (
    [Dim Customer].[BU].[BU].MEMBERS*
    [Dim Customer].[BU Description].[BU Description].MEMBERS*
    [Dim Customer].[Cust No].[Cust No].ALLMEMBERS*
    [Dim Address].[Customer Name].[Customer Name].ALLMEMBERS
    ),
[Measures].[Amount],
BDESC
)

* 

[Bucket Dim].[Bucket].[Bucket].ALLMEMBERS 
) }  ON ROWS 

FROM [Cube]

但我仍然没有得到我想要的正确的订单&而且执行的时间太长了

您可以嵌套
ORDER
函数以按条件获得多个订单

首先应用外部顺序-有点违反直觉

以下内容将按
cust no
的值排序,然后按
BU
的标题排序,然后按
[Measures].[Amount]

SELECT 
  NON EMPTY 
    {[Measures].[Amount]} ON COLUMNS
 ,NON EMPTY 
    {
        Order
        (
          Order
          (
            Order
            (
                [Dim Customer].[BU].[BU].MEMBERS*
                [Dim Customer].[BU Description].[BU Description].MEMBERS*
                [Dim Customer].[Cust No].[Cust No].ALLMEMBERS*
                [Dim Address].[Customer Name].[Customer Name].ALLMEMBERS
             ,[Measures].[Amount]
             ,BDESC
            )
           ,[Dim Customer].[BU].CurrentMember.Member_Caption
           ,BDESC
          )
         ,[Dim Customer].[Cust No].CurrentMember.MemberValue
         ,BDESC
        )
      * 
        [Bucket Dim].[Bucket].[Bucket].ALLMEMBERS
    } ON ROWS
FROM [Cube];

您认为
ORDER
的第一个参数的数据类型是什么?根据文档(),它应该是一个集合。但是,在括号中传递一个逗号分隔的集合列表。也许你们应该把它变成四个一维集合的叉积,即。E将逗号替换为
*
?那至少是一套。是的,你是对的。我已经完成了,现在开始工作。@FrankPl,我们也可以使用,在大括号中。据我所知,MDX规范没有定义这里使用的有什么不同,&*多少个集合,用逗号分隔,括号中的所有内容。因此,我不知道AnalysisServices如何解释它,因为我从未实际使用过该语法。