我刚刚开始关注MDX并且我遇到了计算成员的问题。我正在使用以下MDX:
IIF( ISEMPTY((Axis(1).Item(0).Item(0).Dimension.CurrentMember,[Measures]。[Qty])) ,空值 ,([产品]。[产品代码] .CurrentMember.Parent,[Measures]。[Qty])
)
我要做的是获取多维数据集中显示的产品组的总数量。然后,我使用该总数除以每个产品的数量,以获得“总百分比”度量。上述MDX可以正确返回任何维度中显示的产品总数。但是,当Excel中的用户更改显示产品的过滤器时,上面的MDX仍会显示整个组的总数量,而忽略用户已检查的产品。我假设我对MDX缺乏一些基本的了解,我如何得到计算的度量来说明用户在Excel中选择的产品代码?
答案 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
我发现这个选项在开发时可以实现你所提到的。