2015-05-19 52 views
1

在名爲Employees的維度中顯示員工父子級別,該維度顯示組織的管理結構。這個層次結構是[Employees]。[管理]。 還有另一個層次結構,列出組織的所有員工。這是一個單一的層次結構,它是[僱員]。[所有員工]。在MDX中獲取父級子級中當前成員的級別x值

我有一個查詢,看起來像這樣:

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]) 

現在,如果我擴大父子層次結構(在[員工] [管理]層次。)我可以看到每個不同層次的這個結構([等級02],[等級03],[等級04]等)以及我現在需要做的是創建一個新的計算度量值measure [SupervisingManager],它將當前成員值恢復到[等級03]的層次結構。

我已經試過

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

但只是返回 「#錯誤」,並使用

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

返回該currentmember。我也試驗過

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

但這個問題是,當前成員可以位於層次結構中的任何位置。我能想到的唯一方法是做一個大規模的case語句,獲取當前成員的序號值並使用合適的.parent.parent邏輯。有沒有更好的方法來做到這一點?

回答

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]; 
相關問題