2015-04-02 67 views
3

我有一个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击穿来计算。

表2截图 - 您删除CarMake并拖动质量,然后Tran Count和Freq%应按照质量细分计算。

表3中的屏幕截图 - 您删除质量并拖动品牌,然后Tran Count和Freq%应按品牌明细计算。

+1

可能 - 请将您当前的'mdx'尝试添加到问题 – whytheq 2015-04-02 17:36:31

+0

您需要一个计算维度。在Chris Webb的 [Expert Cube Development](http://www.amazon.com/Expert-Cube-Development-Multidimensional-Models/dp/1849689903)中有一个很长的例子。如果你无法查看,请告诉我,我将在工作时更详细地解释它。 – 2015-04-08 17:39:07

+0

@whytheq:我已经用相关的MDX更新了这个问题,并添加了我需要发生的事情的截图。 – BalajiB 2015-04-09 11:25:51

回答

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函数,如果你需要其他的聚集。

相关问题