使用过滤器

时间:2015-11-04 11:22:40

标签: ssas mdx

我有这个问题要找到一个通用的MDX表达式,它返回总计的百分比,而不管我在SSAS多维数据集浏览器中拖动的维度。

现在我使用这个表达式:

([Measures].[Montant], Axis(1)(0)(Axis(1)(0).Count - 1).dimension.currentmember)
/SUM(([Measures].[Montant], Axis(1)(0)))

它工作正常,但是当我过滤轴的内部项时,表达式返回错误的值

例如:

我的行中有3个项目:年份>品牌>分类

所有行的总计为125:

SUM(([Measures].[Montant], Axis(1)(0))) 

如果我对类别进行过滤,则总计更改,现在假设它对于轴的外部项目等于65。但是当我向下钻取以查看其类别的值时,我发现它仍然等于125.因此,百分比的值也是错误的。

有人可以帮我弄清楚我的MDX表达方式有什么问题因为我已经坚持了很长时间并且我似乎找不到解决方案。

screenshot of cube browser

计算的度量是"测试SOB",MDX表达式:

([Measures].[Montant], Axis(1)(0)(Axis(1)(0).Count - 1).dimension.currentmember)
/SUM(([Measures].[Montant], Axis(1)(0)))

总计是" denominateur",MDX表达:

SUM(([Measures].[Montant], Axis(1)(0)))

如您所见,使用Onglet过滤后的值=" DIGITAL"是182.50但是当我深入了解品牌" Beauty"看" denominateur"每个类别,我发现值338.05这是" denominateur"的值。在应用过滤器之前。

1 个答案:

答案 0 :(得分:0)

我想知道使用EXISTING是否会在您的行业计算中强制执行过滤器上下文?

SUM(
  [Measures].[Montant], 
  EXISTING Axis(1).ITEM(0).ITEM(0).HIERARCHY.MEMBERS 
)