SSRS MDX计算成员忽略过滤器

时间:2014-05-07 16:18:53

标签: reporting-services mdx

使用VS2012中的查询设计器我正在创建一个关于鸡的报告。

我选择我的尺度(鸡的数量)和尺寸(农场)。

我使用过滤器表达式选项为鸡肉颜色创建参数,并且仅包括红色,蓝色或绿色的鸡。这给了我一些看起来像这样的东西:

Farm    |Chicken Count  
A       |3
B       |4
C       |19

现在我想把这个鸡的数量显示为农场所有鸡总数的百分比。像这样:

Farm    |Chicken Count  |Percentage of Total Chickens at Farm
A       |3              |0.13
B       |4              |1
C       |19             |0.45

如何创建计算成员以显示最后一个字段?

我试过

  

[措施]。[鸡肉计数] / SUM(轴(1),[措施]。[鸡肉计数])

但是这给了我所有符合参数的农场所有鸡只的鸡肉数量。

我面临的问题是,我无法找到一种方法来获取农场的所有鸡 - 忽略过滤器。

我该怎么做

  

[测量]。[鸡肉计数] / SUM(未过滤的鸡)?

如果有任何我可以帮助解释的话,请在评论中告诉我。 还请假设(如果尚不清楚)我几乎不了解MDX。

2 个答案:

答案 0 :(得分:1)

使用以下表达式为查询添加计算度量:

[Measures].[Chicken Count] / ([Measures].[Chicken Count], [Chicken].[Colour].[All])

分母中的元组删除了按颜色对鸡进行的局部过滤(假设您的尺寸名称被称为“鸡肉'属性被称为'颜色'”),返回在给定的背景下鸡的总数。

同样,如果你想要一个农场百分比的鸡总数,你会这样做:

[Measures].[Chicken Count] / ([Measures].[Chicken Count], [Chicken].[Colour].[All], [Farm].[Farm].[All])

答案 1 :(得分:0)

假设您的过滤器基于[颜色]尺寸而您只过滤了褐色鸡,您可以将其定义为:

With 
  Member [Measures].[Brown Chickens] as ( [Measures].[Chicken Count], [Color].[Brown])
  Member [Measures].[All Chickens] as ( [Measures].[Chicken Count], [Color].[All])
  Member [Measures].[Percentage of Count] as [Measures].[Brown Chickens]]/[Measures].[All Chickens]
Select 
  [Farm].Children on Rows, 
  { [Measures].[Brown Chickens], [Measures].[Percentage of Count] } on Columns
From [myCube]