我试图在SSRS 200R2的报告中反转递归层次结构的排序。该报告是在包含所需层次结构的SSAS多维数据集上构建的。
我阅读了这个主题的答案: SSRS ignores sort in a recursive hierarchy我理解我无法对关卡之间的层次结构进行排序。但是,我想要做的是将从Parent-Child到Child-Parent的排序反转,而不是在级别之间进行排序,而我找不到办法。
这是我的意思的一个例子:
员工的递归层次结构和总计度量出现如下:
self.view
我希望看到相同的信息,但我希望孩子们出现在顶部,而父母则出现在其组的底部:
Employee | Measure
------------------
Peter | 10
Adam | 3
Zelda | 7
James | 20
Becky | 15
Paul | 5
我尝试添加一个新字段“employee_level”,它表示我用于创建报告的员工层次结构中的员工级别,但是按“employee_level”排序Tablix没有做任何事情。
以下是我在MDX中用来获取上述输出的查询:
Employee | Measure
------------------
Adam | 3
Zelda | 7
Peter | 10
Becky | 15
Paul | 5
James | 20
是否有可能实现上述逆转?如果是这样,怎么样?
编辑: 我要做的是在 SSRS报告中获得相反的顺序。将ORDER添加到MDX不会影响结束报告。
答案 0 :(得分:0)
您可以在ORDER
子句中使用SELECT
函数吗?
WITH
SET [Filter_Employee_Hierarchy] AS
FILTER (
[Employees].[Emp_Id].ALLMEMBERS
, [Measures].[Sum] > 0
)
SET [Filter_Employee_Hierarchy_ORDERED] AS
ORDER(
HIERARCHIZE([Filter_Employee_Hierarchy])
,[Measures].[Employee_Level]
,BDESC
)
MEMBER [Measures].[RNKforOrdering] AS
RANK(
[Employees].[Emp_Id].CURRENTMEMBER
,[Filter_Employee_Hierarchy_ORDERED]
)
MEMBER [Measures].[Employee_Level] AS
[Employees].[Emp_Id].CURRENTMEMBER.LEVEL.ORDINAL
MEMBER [Measures].[Employee] AS
[Employees].[Emp_Id].MEMBER_CAPTION
MEMBER [Measures].[Employee_Parent] AS
[Employees].[Emp_Id].PARENT.MEMBER_CAPTION
SELECT
{
[Measures].[Sum]
, [Measures].[Employee_Level]
, [Measures].[Employee_Parent]
, [Measures].[RNKforOrdering]
} ON 0,
[Filter_Employee_Hierarchy_ORDERED] ON 1
FROM [Cube];