2016-06-14 148 views
0

如何在MDX中创建新列?选择的尺寸并不重要。我只想要选择的数据的行数/总和。我不是专家MDX ...ssas mdx线数除以SUM

enter image description here

enter image description here

下面

当前代码:

CREATE MEMBER CURRENTCUBE.[Measures].[Weight] 
AS IIF([Measures].[Sales Line Amount AC Budget hidden] <> 0, 
Divide([Measures].[Sales Line Amount AC Budget hidden] 
,AGGREGATE(Root(),[Measures].[Sales Line Amount AC Budget hidden])),NULL), 
VISIBLE = 1 , ASSOCIATED_MEASURE_GROUP = 'Sales Forecast' ; 

嗨它们是在同一列...我只是引用一个隐藏的列,因此我可以改变它的属性,不影响原来的措施。你确定MDX会给我我想要的结果吗?它可能是一个格式问题?该措施的格式为#,0.00

enter image description here

+0

我想是这样的[措施]。[销售行金额AC预算隐藏]/SUM([措施]。[销售行金额AC预算隐藏] .allmembers),但没有奏效。 .. – jhowe

+0

“Sum Below”数字是隐藏的销售额金额AC预算的自然总和吗?它看起来像行值是重复的,也许与ForecastOffset的源维度没有关系? –

回答

3

OK! 我想我明白你想要试试这个。有了Root,您可以从所有维度获得全部。

Divide(
    [Measures].[Sales Line Amount AC Budget hidden] 
,AGGREGATE(
    Root() 
    ,[Measures].[Sales Line Amount AC Budget hidden] 
) 
) 

编辑:

不要认为这是一个相当简单的方法来做到这一点。也许看看Axis(1)而不是root。

我没有在一个立方体只在查询试试这个...和它的作品..

Divide(
    [Measures].[Sales Line Amount AC Budget hidden] 
,AGGREGATE(
    Axis(1) 
    ,[Measures].[Sales Line Amount AC Budget hidden] 
) 
) 

EDIT2:

既然你想这与Excel工作。没有一个明确的方法来让它工作,而不知道你想要“重量”的确切尺寸。 Excel适用于Subcubes,这意味着,Axis函数实际上会返回该轴上的所有成员。

没有办法确切地知道哪些成员实际上在MDX中显示。这应该是客户端计算。

在EXCEL中,您可以非常简单地通过选择前往OPTION的字段并选择“Show Values As”来执行此操作。使用“%Grand Total”会为您提供您正在寻找的百分比。

Excel - Show Values As

+2

(提高)看到'ROOT' ......确实很少见。 – whytheq

+0

@whytheq我从来没有在生产中使用它... xD – mxix

+0

嗨,它似乎给出了奇怪的结果...我张贴了更新的图片。你能帮我吗???感谢它非常紧迫,我得到了这个工作......谢谢。 – jhowe