在MDX中获取父子层次结构中当前成员的级别x值

问题描述 投票:1回答:1

我在一个名为Employees的维度中有一个员工父子层次结构,它显示了组织的管理结构。该层次结构是[Employees]。[Managerial]。还有另一个层次结构列出了组织的所有员工。这是一个单级层次结构,它是[Employess]。[所有员工]。

我有一个看起来像这样的查询:

With 
Member measures.[FullTimeSalary] as measures.[Salary] * measures.[FullTimeFactor] 
Select {measures.[FullTimeSalary]} on 0,
Non empty
{
[Employess].[All Employees].[All].Children 
}
On 1
From MyCube
Where ([Time].[Month].&[201501])

现在,如果我扩展父子层次结构([Employees]。[Managerial]层次结构),我可以看到这个结构的每个不同层次([Level 02],[Level 03],[Level 04]等)和我现在需要做的是创建一个名为measure的新计算度量。[SupervisingManager]带回层次结构的[Level 03]的currentmembers值。

我试过了

member measures.[SupervisingManager] as [Employees].[Managerial].[Level 03].currentmember.member_name

但这只是返回“#Error”并使用

member measures.[SupervisingManager] as [Employees].[Managerial].currentmember.member_name 

返回当前成员。我也尝试过

measures.[SupervisingManager] as [Employees].[Managerial].currentmember.parent.member_name

但问题是当前成员可以位于层次结构内的任何成员。我能想到这样做的唯一方法是做一个大规模的case语句,获取当前成员的序数值并使用适当的.parent.parent逻辑。有没有更简洁的方法来做到这一点?

parent-child mdx hierarchy
1个回答
0
投票

也许这些方面的东西会有所帮助:

WITH 
  MEMBER measures.[FullTimeSalary] AS 
    measures.[Salary] * measures.[FullTimeFactor] 
  MEMBER measures.[SupervisingManager] AS 
    IIF
    (
      [Employees].CurrentMember.Parent.Level.Name = 'Level 03'
     ,[Employees].CurrentMember.Parent.Member_Caption
     ,'n/a'
    ) 
SELECT 
  {
    measures.[FullTimeSalary]
   ,measures.[SupervisingManager]
  } ON 0
 ,NON EMPTY 
    {[Employess].[All Employees].[All].Children} ON 1
FROM MyCube
WHERE 
  [Time].[Month].&[201501];
© www.soinside.com 2019 - 2024. All rights reserved.