我有一个4维的立方体,我有一个名为Transaction Count
的度量。现在,我想计算上述度量的所有维度的Percentage
。
我还有一个名为Cars
的维度。我对所有Cars
进行了计数,现在我已经定义了一个计算度量,用于根据事务总数计算每辆汽车的Percentage
。但它只适用于那个特定的维度。
如何创建可在所有维度中使用的单个百分比计算度量?
计算度量的MDX :(仅适用于Carmake维度)
CASE
WHEN ISEMPTY( [MEASURES].[Trans COUNT] )
THEN 0
ELSE ([Dim Car Make].[Hierarchy].CURRENTMEMBER,
[MEASURES].[FACT COLORPERFORMANCE COUNT])/
( [DIM CAR MAKE].[CARMAKE].[(ALL)].[ALL],
[MEASURES].[Trans COUNT])
END
我已经有了Trancount(1000)指标。现在我需要创建一个计算的度量值Freq%,它应该在所有维度上计算。
截图 - > http://i.stack.imgur.com/iuaQO.jpg(发布图片需要10个代表)
屏幕截图中的表1 - 您拖放carmake维度,然后根据CarMake细分计算Tran Count和Freq%。
屏幕截图中的表2 - 您删除CarMake并拖动质量,然后应根据质量细分计算Tran Count和Freq%。
屏幕截图中的表3 - 您删除质量并拖动品牌,然后根据品牌细分计算Tran Count和Freq%。
答案 0 :(得分:0)
我发现的最好方法是使用AXIS()动态获取当前使用的维度。
with
member Member_Lvl as AXIS(0).item(0).level.ordinal --get the level for next calc
member All_Member as sum(ancestor(axis(0).item(0).hierarchy.currentMember,<yourMeasure>),Member_Lvl )
member Percent_of_All as sum(axis(0).item(0).hierarchy.currentMember,<yourMeasure>) / All_Member
select <Your Dim > on 0, {<Your Measure>, Percent_of_All} on 1
from <Your Cueb>
注意:如果需要其他聚合,请在计算中替换SUM函数。