1

在我的多维数据集中的计算成员中,我将该函数与以下截图中的Ancestor函数结合使用:LastSibling

Ancestor
( 
    [Dimension].[User Hierarchy].CurrentMember,
    [Dimension].[User Hierarchy].[Desired Member Level]
).LastSibling

是否可以在拉取之前过滤包含返回的祖先的集合LastSibling?例如由此返回的祖先,应用以下Filter表达式:

Filter  
(
    [Dimension].[User Hierarchy].[Is Actual].Members,
    [Dimension].[User Hierarchy].Properties( "Is Actual" ) = "N"            
)

最终,我试图从我CurrentMember的层次结构中返回与函数返回的成员相同的集合的最后一个成员Ancestor,它满足上述过滤器。

4

2 回答 2

0

尝试使用Ancestors而不是Ancestor- 然后返回一个集合:

Filter
(
  Ancestors
  (
    [Dimension].[User Hierarchy].CurrentMember
   ,[Dimension].[User Hierarchy].[Is Actual]
  )
 ,
  [Dimension].[User Hierarchy].Properties("Is Actual") = "N"
).Item(0).LastSibling

好的 - 以上是错误的,因为Filter返回一个集合但LastSibling需要一个member. 重新阅读您的要求后,这可能是您想要的更多:

TAIL(
  FILTER                    //<< 3. find the last member
  (
    ANCESTOR                //<< 1. find the ancestor member within [Some higher level]
    (
      [Dimension].[User Hierarchy].CURRENTMEMBER
     ,[Dimension].[User Hierarchy].[Some higher level]
    ).LEVEL.MEMBERS         //<< 2. find all the members of the higher level
   ,
    [Dimension].[User Hierarchy].CURRENTMEMBER.Properties("Is Actual") = "N"
  )
)             

但是你不能只使用过滤器,你知道你要过滤的级别:

TAIL(  //<< or .LASTSIBLING  
  FILTER
  (
    [Dimension].[User Hierarchy].[Some higher level].MEMBERS,
    [Dimension].[User Hierarchy].CURRENTMEMBER.Properties("Is Actual") = "N"
  )
)             
于 2015-07-02T15:42:35.317 回答
0

至少在SSAS(不确定支持的其他技术MDX)中,成员只能有一个祖先。所以在技术上ANCESTORANCESTORS是一回事。

现在回到你的问题。如果要进行过滤,可以使用IIF语句,也可以使用FILTER.

过滤使用IIF

IIF
    (
     Ancestor
            (
                [Dimension].[User Hierarchy].CurrentMember, 
                [Dimension].[User Hierarchy].[Desired Member Level]
            ).PROPERTIES("Is Actual") = "N", 
    , 
     Ancestor
            (
                [Dimension].[User Hierarchy].CurrentMember, 
                [Dimension].[User Hierarchy].[Desired Member Level]
            ).LastSibling
    ,
    NULL
    )

过滤使用Filter

FILTER(
        Ancestor
        (
            [Dimension].[User Hierarchy].CurrentMember, 
            [Dimension].[User Hierarchy].[Desired Member Level]
        )
        ,
        Ancestor
        (
            [Dimension].[User Hierarchy].CurrentMember, 
            [Dimension].[User Hierarchy].[Desired Member Level]
        ).PROPERTIES("Is Actual") = "N"
    ).item(0).LastSibling

.LastSibling真的是多余的,因为在这种情况下只会有一个兄弟姐妹。

于 2015-07-03T05:10:11.213 回答