使用CurrentMember时,在过滤器上获得不同的结果。轴心问题?

时间:2013-06-19 18:32:39

标签: sql-server mdx business-intelligence

我在教育方面工作,我正试图找到一个学生毕业或者使用大学术语的术语。

如果我使用以下MDX,我会得到正确的结果,这恰好是去年的秋天。

select 
filter(
    [Term].[Term].[Term],
    (
        [Student].[Student].[Student Dimension Type].&[Student].&[123456],
        [Measures].[Degree Conferred Count]
    ) > 0
) on 0
from [Enrollment Analytics]

如果我将显性学生成员换成当前成员,并将学生扔到另一个轴上,我会在过去两年中获得秋季,夏季和春季。

select 
    filter(
        [Term].[Term].[Term],
        (
            [Student].[Student].currentmember,
            [Measures].[Degree Conferred Count]
        ) > 0
    ) on 0,
    [Student].[Student].[Student Dimension Type].&[Student].&[123456] on 1
from [Enrollment Analytics]

如果有人有时间,你能否解释一下这两个陈述的处理方式有何不同?谢谢!

1 个答案:

答案 0 :(得分:1)

当处理Axis 0时,我猜还有[Student] .currentMember,所以将使用此层次结构的.defaultMember;所以你将得到一个基于该默认成员值的过滤器集。

我认为添加一个where子句(即定义当前成员):

where [Student].[Student].[Student Dimension Type].&[Student].&[123456]

是您正在寻找的。