ssas mdx行数除以SUM

时间:2016-06-14 11:27:46

标签: sql-server-2012 ssas mdx ssas-2012

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

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

1 个答案:

答案 0 :(得分: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使用子立方体,这意味着,轴功能实际上返回该轴的所有成员。

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

只需选择转到OPTION的字段并转到“将值显示为”,即可在EXCEL中轻松完成此操作。 “%Grand Total”将为您提供您正在寻找的百分比。

Excel - Show Values As