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如何解释它,因为我从未实际使用过该语法。