在mdx查询中传递参数

时间:2016-12-14 19:48:30

标签: reporting-services ssrs-2008 mdx

我想做的是;用户可以从下拉列表中选择区域的值(Region1,Region2,Region3)。 @Region应该在mdx查询中获取该值。 例如。如果用户选择Region2,它应该如下所示:[Region]。 [Region2] .children。我写的查询显示存在语法错误。

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];

1 个答案:

答案 0 :(得分: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