我有三个查询要使用 currentmember 函数按成员过滤。当过滤器应用于具有我要过滤的成员的层次结构时,我可以使用 IS 运算符匹配成员并获得正确的结果。但是,当过滤集和成员位于不同的层次结构中时,它不起作用。然而,如果我只是进行标题比较而不是对象比较,我可以正确地获得第二种情况的过滤结果。这些示例使用 AdventureWorks 数据库。
此查询与 IS 运算符按预期工作:
select non empty [Measures].[Reseller Sales Amount] on 0,
Filter (NonEmpty({[Geography].[Country].[Country].ALLMEMBERS * [Geography].[City].[City].ALLMEMBERS}), [Geography].[City].Currentmember IS [Geography].[City].&[Seattle]&[WA]) on 1
来自[冒险作品]
这个使用标题比较(不同的结果,如预期的那样)
select non empty [Measures].[Reseller Sales Amount] on 0,
Filter (NonEmpty({[Geography].[Country].[Country].ALLMEMBERS}), [Geography].[City].Currentmember.MEMBER_CAPTION = 'Seattle') on 1
来自[冒险作品]
这个虽然应该产生与前一个查询相同的结果,但不会返回任何内容:
select non empty [Measures].[Reseller Sales Amount] on 0,
Filter (NonEmpty({[Geography].[Country].[Country].ALLMEMBERS }), [Geography].[City].Currentmember IS [Geography].[City].&[Seattle]&[WA]) on 1
来自[冒险作品]
谢谢。