MDX忽略Excel过滤器

时间:2013-06-27 14:28:02

标签: ssas mdx data-warehouse olap

我刚刚开始关注MDX并且我遇到了计算成员的问题。我正在使用以下MDX:

IIF( ISEMPTY((Axis(1).Item(0).Item(0).Dimension.CurrentMember,[Measures]。[Qty])) ,空值 ,([产品]。[产品代码] .CurrentMember.Parent,[Measures]。[Qty])

我要做的是获取多维数据集中显示的产品组的总数量。然后,我使用该总数除以每个产品的数量,以获得“总百分比”度量。上述MDX可以正确返回任何维度中显示的产品总数。但是,当Excel中的用户更改显示产品的过滤器时,上面的MDX仍会显示整个组的总数量,而忽略用户已检查的产品。我假设我对MDX缺乏一些基本的了解,我如何得到计算的度量来说明用户在Excel中选择的产品代码?

1 个答案:

答案 0 :(得分:0)

使用Visual Studio SQL Server数据工具(如果您使用的是该工具),您可以浏览到您的多维数据集,选择“计算”选项卡,然后在“计算工具”>下。模板有一个模板"总百分比"。此工具提供的MDX非常灵活,因此百分比会根据您已拉入枢轴的层次结构的属性进行调整。

Case
// Test to avoid division by zero.
When IsEmpty
 ( 
    [Measures].[<<Target Measure>>] 
 ) 
Then Null

Else ( [<<Target Dimension>>].[<<Target Hierarchy>>].CurrentMember,
   [Measures].[<<Target Measure>>] ) 
 /
 ( 
   // The Root function returns the (All) value for the target dimension.
   Root     
   ( 
      [<<Target Dimension>>] 
    ), 
    [Measures].[<<Target Measure>>] 
 )
End

我发现这个选项在开发时可以实现你所提到的。