2013-08-05 98 views
1

我有一個用戶層次結構,並且我想只在用戶有子級時展開和向下鑽取。如果層次結構中的成員沒有孩子,我想隱藏此成員。如果當前成員有子級,則展開用戶層次結構 - MDX

以下查詢獲取所有在層次結構1中的人,但我只想顯示那些至少有子成員的人。

 
    with member [Test] as '0' 
SELECT 
{ [Test] } ON COLUMNS, non empty 
{ 
( 

    [Dim User].[UserHierarchy].[UserLevel1].AllMembers 

) 
}Dimension Properties MEMBER_CAPTION, 
MEMBER_UNIQUE_NAME ON ROWS 
FROM [Activities] 

我該如何做到這一點?用戶層次結構是一個衣衫襤褸的。

回答

2
WITH 
    MEMBER [Measures].[Test] AS 
     0 
SELECT 
    { 
     [Test] 
    } ON 0, 
    NON EMPTY { 
     FILTER (
      [Dim User].[UserHierarchy].[UserLevel1].AllMembers 
      ,[Dim User].[UserHierarchy].CurrentMember.Children.Count > 0 
     ) 
    } ON 1 
FROM [Activities] 
+0

謝謝你的回答比爾。如果我想顯示層次結構,例如從Level1到Level8,我會如何塑造您的答案,讓我展示父母的完整層次結構?你的回答只能隱藏層級中的成員,但他們的數字仍然顯示在措施中? – Mez

0

對於其他人誰有同樣的問題,而且是Excel的那種效果,用戶層次結構的尺寸僅擴大了父母后,這是做它的方式:

 
WITH 
    MEMBER [Measures].[Test] AS 
     0 
SELECT 
    { 
     [Test] 
    } ON 0, 
    NON EMPTY { 
     filter (
      {[dim user].[userhierarchy].[userlevel1].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ), 
     filter (
      {[dim user].[userhierarchy].[userlevel2].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ), 
     filter (
      {[dim user].[userhierarchy].[userlevel3].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ), 
     filter (
      {[dim user].[userhierarchy].[userlevel4].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ), 
     filter (
      {[dim user].[userhierarchy].[userlevel5].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ), 
     filter (
      {[dim user].[userhierarchy].[userlevel6].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ), 
     filter (
      {[dim user].[userhierarchy].[userlevel7].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ), 
     filter (
      {[dim user].[userhierarchy].[userlevel8].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ), 
     filter (
      {[dim user].[userhierarchy].[userlevel9].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ), 
     filter (
      {[dim user].[userhierarchy].[userlevel10].allmembers } 
      ,[dim user].[userhierarchy].currentmember.children.count > 1 
     ) 
    } ON 1 
FROM [Activities] 

查詢將自動檢查用戶層次結構,並自動下降到必要的級別。感謝比爾建議他的解決方案,並把我放在正確的軌道上。

相關問題