Sql server MDX:Reporting Services查询中使用的MDX查询中的筛选结果出现问题
为什么我的[Group Hierarchy]中的成员没有通过下面的filter()语句对我的结果进行过滤Sql server MDX:Reporting Services查询中使用的MDX查询中的筛选结果出现问题,sql-server,reporting-services,mdx,Sql Server,Reporting Services,Mdx,为什么我的[Group Hierarchy]中的成员没有通过下面的filter()语句对我的结果进行过滤 SELECT NON EMPTY {[Measures].[Group Count], [Measures].[Overall Group Count] } ON COLUMNS, NON EMPTY { [Survey].[Surveys By Year].[Survey Year].ALLMEMBERS * [Respons
SELECT
NON EMPTY {[Measures].[Group Count], [Measures].[Overall Group Count] } ON COLUMNS,
NON EMPTY {
[Survey].[Surveys By Year].[Survey Year].ALLMEMBERS *
[Response Status].[Response Status].[Response Status].ALLMEMBERS}
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM (
SELECT ( { [Survey Type].[Survey Type Hierarchy].&[9] } ) ON COLUMNS
FROM (
SELECT ( { [Response Status].[Response Status].[All] } ) ON COLUMNS
FROM (
SELECT ( STRTOSET(@SurveySurveysByYear, CONSTRAINED) ) ON COLUMNS
FROM (
SELECT(filter([Group].[Group Hierarchy].members, instr(@GroupGroupFullName,[Group].[Group Hierarchy].Properties( "Group Full Name" )))) on columns
FROM [SysSurveyDW]))))
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS
我想你可能把你的参数搞错了。按照编码方式,它有效地查找存在于参数中的成员名称。我不确定您作为参数传递的是什么,但我认为您更有可能是在搜索包含参数值的成员名称。以下是一个按预期工作的解决方案。已将筛选器移动到WHERE子句中。。。直到我将“SELECT({[Group].[Group].[Group]})放在列上…”代码放在FROM中,它才起作用 有人能找到更好的方法来实现这一点吗?绝对不是这里的MDX大师:)
组层次结构上的筛选器工作正常(例如,返回一组预期的组)。。。只是由于某些原因,它们没有被用来限制返回的结果。子选择的工作方式类似于查询范围的子多维数据集,因此除非度量值是依赖于当前上下文的计算,否则它们应该可以正常工作。如果度量值是计算度量值,那么最好的解决方案是将查询切换到使用WHERE子句而不是SUBSELECT。
SELECT
NON EMPTY {[Measures].[Group Count], [Measures].[Overall Group Count] } ON COLUMNS,
NON EMPTY {
STRTOSET(@SurveySurveysByYear) *
[Response Status].[Response Status].[Response Status].ALLMEMBERS}
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM (
SELECT ({[Group].[Group].[Group]}) ON COLUMNS
FROM (
SELECT ( { [Survey Type].[Survey Type Hierarchy].&[9] } ) ON COLUMNS
FROM (
SELECT ( { [Response Status].[Response Status].[All] } ) ON COLUMNS
FROM [SysSurveyDW] )))
where
filter([Group].[Group Hierarchy].members - [Group].[Group Hierarchy].[All],
instr(@GroupGroupFullName,[Group].[Group Hierarchy].Properties( "Group Full Name" )))
CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS