Ssas MDX currentmember/是否不一致?

Ssas MDX currentmember/是否不一致?,ssas,mdx,Ssas,Mdx,我有三个查询要使用currentmember函数按成员筛选。当筛选器应用于包含要筛选依据的成员的层次结构时,我可以使用is运算符匹配成员并获得正确的结果。但是,当筛选集和成员位于不同的层次结构中时,它不起作用。然而,对于第二种情况,如果不进行对象比较,而只进行标题比较,则可以正确获得过滤结果。这些示例使用AdventureWorks数据库 此查询正在使用is运算符按预期工作: select non empty [Measures].[Reseller Sales Amount] on 0, Fi

我有三个查询要使用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 IS [Geography].[City].&[Seattle]&[WA]) on 1
来自[冒险作品]


谢谢。

事实上,这有点奇怪。对我来说,最令人惊讶的结果是第二个。集合中没有要过滤到城市的引用,但是应用了过滤器。我认为第二个结果的原因是“隐式覆盖”起了作用


第二种和第三种情况可能会被区别对待,因为优化器不知何故选择了不同的方式来解释语句。通常,字符串操作(如对标题的引用)的效率低于对对象标识起作用的
IS
运算符。

看起来大多数注释都确认第二次查询的结果是错误。这里还有一些评论

我不知道为什么这个问题在没有任何评论或回答的情况下被否决。@RalfS没有,您应该将最佳解决方案的答案标记为已接受的答案,有关stackoverflow的工作原理,请参阅。
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