Ssas 跨所有维度的通用计算度量

Ssas 跨所有维度的通用计算度量,ssas,mdx,Ssas,Mdx,我有一个4维的立方体,还有一个称为事务计数的度量。现在我想计算上述度量的所有维度的百分比 我还有一个称为Cars的维度。我有所有汽车的计数,现在我定义了一个计算方法,用于从交易总数中计算每辆汽车的百分比。但它只适用于那个特定的维度 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

我有一个4维的立方体,还有一个称为
事务计数的度量。现在我想计算上述度量的所有维度的
百分比

我还有一个称为
Cars
的维度。我有所有
汽车的计数
,现在我定义了一个计算方法,用于从交易总数中计算每辆汽车的
百分比
。但它只适用于那个特定的维度

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>
如何创建一个可用于所有维度的单个百分比计算度量

计算度量值的MDX:(仅适用于Carmake维度)

我已经有了Trancount(1000)度量。现在我需要创建一个计算出的测量频率%,它应该在所有维度上进行计算

截图->(发布图像需要10个代表)

屏幕截图中的表1-拖放carmake维度,然后应根据carmake细分计算Tran Count和Freq%

屏幕截图中的表2-删除CarMake和drag质量,然后根据质量细分计算Tran Count和Freq%


屏幕截图中的表3-删除Quality并拖动Brand,然后Tran Count和Freq%都应根据品牌细分进行计算。

我发现的最佳方法是使用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>
与
作为轴(0)的成员级别。项(0)。级别。序号——获取下一次计算的级别
成员所有成员作为总和(祖先(轴(0).项(0).层次结构.currentMember,),成员层)
所有成员中的成员百分比总和(轴(0).项(0).层次结构.currentMember,)/All成员
在0上选择,在1上选择{,百分比}
从…起

注意:如果您需要其他聚合,请替换计算中的SUM函数。

可能是可行的-请将您当前的
mdx
尝试添加到您需要计算维度的问题中。克里斯·韦伯的书中有一个很长的例子。如果你不能了解这一点,请告诉我,我会在工作时详细解释。@whytheq:我已经用相关的MDX更新了这个问题,还添加了我需要做的事情的屏幕截图。@GeorgeTanasie:很抱歉,现在我无法得到这本书,因为它在本地已经脱销了。我提供了更多的细节问题,如果它可以帮助你。请调查一下。因为你在这方面的努力,我提出了你的问题:)