2016-12-14 87 views
0

我想要做的是;用户将从下拉列表中选择区域的值(区域1,区域2,区域3)。 @Region应该在mdx查询中使用该值。例如 。如果用户选择Region2,它应该如下所示:[Region]。 [Region2] .children。我写的查询显示有语法错误。在mdx查询中传递参数

WITH 
    MEMBER [measures].[region] AS 
    StrToMember("[Region].[" + @Region + "]").CurrentMember.Name 
    MEMBER [measures].[product] AS 
    [Product Line].[product Line L2].CurrentMember.Name 
SELECT 
    NonEmpty 
    (
     StrToMember("[Region].[" + @Region + "]").Children 
    * 
     [Product Line].[Product Line L2].Children 
    ,[Measures].[Total Clients] 
) ON ROWS 
,{ 
    [measures].[region] 
    ,[measures].[product] 
    ,[Measures].[Total Clients] 
    } ON COLUMNS 
FROM [EQ Coverage]; 

回答

0

你也有可用的功能strToSet所以这个:

StrToMember("[Region].[" + @Region + "]").Children 

可以写成:

StrToSet("[Region].[" + @Region + "].Children", CONSTRAINED) 

,但我不确定自己的这部分代码的目的?

MEMBER [measures].[region] AS 
    StrToMember("[Region].[" + @Region + "]").CurrentMember.Name 

我没有看到使用参数的目的 - 你可以做这样的事情?

MEMBER [measures].[region] AS 
    [Region].[Region].CurrentMember.member_caption