参数在 MDX 子选择过滤器中不起作用
Parameter Does Not Work in MDX Subselect Filter
我有以下 MDX 查询:
SELECT
NON EMPTY
Measures.[Enrolments] ON COLUMNS,
NON EMPTY
( STRTOMEMBER(@FromISOYear, CONSTRAINED) :
STRTOMEMBER(@ToISOYear, CONSTRAINED) ) ON ROWS
FROM (
SELECT
Filter
(
[Term Start Date].[ISO Year].Children *
[Term Record Creation].[ISO Year].Children *
[Term Record Creation].[ISO Week Number Of Year].Children
,
Cint([Term Record Creation].[ISO Week Number Of Year].CurrentMember.Member_Key) <= Cint( STRTOMEMBER(@ToISOWeekNumberOfYear, CONSTRAINED) )
OR
Cint([Term Record Creation].[ISO Year].CurrentMember.Member_key) < Cint([Term Start Date].[ISO Year].CurrentMember.Member_key)
) ON COLUMNS
FROM [Enrolments]
);
基本上,过滤器表达式在 ISO Week Number of Year
不是参数时起作用,例如如果我将过滤器表达式更改为 [ISO Week Number of Year] <= 7
它会提供正确的结果。当我从 SSRS 传递相同的值作为参数时,我得到了不正确的结果 - 过滤器似乎没有被应用。
有人可以解释这是为什么并提供修复吗?
我注意到您在这里遗漏了 Member_Key。更改以下内容:
Cint( STRTOMEMBER(@ToISOWeekNumberOfYear, CONSTRAINED) )
收件人:
Cint( STRTOMEMBER(@ToISOWeekNumberOfYear, CONSTRAINED).Member_Key )
我有以下 MDX 查询:
SELECT
NON EMPTY
Measures.[Enrolments] ON COLUMNS,
NON EMPTY
( STRTOMEMBER(@FromISOYear, CONSTRAINED) :
STRTOMEMBER(@ToISOYear, CONSTRAINED) ) ON ROWS
FROM (
SELECT
Filter
(
[Term Start Date].[ISO Year].Children *
[Term Record Creation].[ISO Year].Children *
[Term Record Creation].[ISO Week Number Of Year].Children
,
Cint([Term Record Creation].[ISO Week Number Of Year].CurrentMember.Member_Key) <= Cint( STRTOMEMBER(@ToISOWeekNumberOfYear, CONSTRAINED) )
OR
Cint([Term Record Creation].[ISO Year].CurrentMember.Member_key) < Cint([Term Start Date].[ISO Year].CurrentMember.Member_key)
) ON COLUMNS
FROM [Enrolments]
);
基本上,过滤器表达式在 ISO Week Number of Year
不是参数时起作用,例如如果我将过滤器表达式更改为 [ISO Week Number of Year] <= 7
它会提供正确的结果。当我从 SSRS 传递相同的值作为参数时,我得到了不正确的结果 - 过滤器似乎没有被应用。
有人可以解释这是为什么并提供修复吗?
我注意到您在这里遗漏了 Member_Key。更改以下内容:
Cint( STRTOMEMBER(@ToISOWeekNumberOfYear, CONSTRAINED) )
收件人:
Cint( STRTOMEMBER(@ToISOWeekNumberOfYear, CONSTRAINED).Member_Key )