ssas mdx 行数除以 SUM

ssas mdx line quantity divided by SUM

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

当前代码如下:

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

好的! 我想我明白你想要什么试试这个。使用 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]
  )
)

编辑 2:

因为您希望它与 Excel 一起使用。如果不确切知道您想要的维度 "Weight",就没有明确的方法让它工作。 Excel 适用于子立方体,这意味着轴函数实际上 return 来自该轴的所有成员。

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

您实际上可以在 EXCEL 中非常轻松地完成此操作,只需选择转到选项的字段并转到 "Show Values As"。使用“% Grand Total”将为您提供您正在寻找的准确百分比。