2

我刚刚开始了解 MDX,但我遇到了计算成员的问题。我正在使用以下 MDX:

IIF( ISEMPTY((Axis(1).Item(0).Item(0).Di​​mension.CurrentMember, [Measures].[Qty])) ,NULL ,([Product].[Product Code].CurrentMember.Parent, [措施].[数量])

)

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

4

1 回答 1

0

使用 Visual Studio SQL Server Data Tools(如果您正在使用该工具),您可以浏览到您的多维数据集,选择“计算”选项卡,然后在“计算工具”>“模板”下有一个模板“总计百分比”。此工具提供的 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

在开发以实现您提到的内容时,我发现此选项有效。

于 2015-06-08T16:01:26.933 回答