1

我找到了这个小代码,它可以TOTAL为我想要的所有维度/层次结构动态计算 s。

这接近我所需要的,但不适用于具有不同数量的层次结构级别(属性层次结构)的维度。当前代码仅在只有一个属性层次结构时才有效,因为CurrentMember.Parent. 我可以使用CurrentMember.Parent.ParentDimension.Hierarchy有两个级别,依此类推,但不适用于只有一个属性层次结构(级别)的那些。

CALCULATE;     
CREATE MEMBER CURRENTCUBE.[Measures].[Total On Hand Amount]
AS ([Measures].[On Hand Amount],Axis(1).Item(0).Item(0).Dimension.CurrentMember.Parent), 
FORMAT_STRING = "#,#", 
VISIBLE = 1  ;

我想让这个 MDX 代码适用于任何 Dimension.Hierarchy,无论属性层次结构(级别/秒)的数量如何。

任何帮助表示赞赏!

4

2 回答 2

0
(Axis(1).Item(0).Item(0).Dimension.Levels(0).Item(0), [Measures].[On Hand Amount])

上面给了我正确的答案,total 用于衡量任何维度的动态选择,但这个 MDX 计算不适用于 PowerBI(DAX) 报告,这仅仅是 PowerBI 的限制。

我得到了 TOTAL 现在处理这个 -

SCOPE(DESCENDANTS([Warehouses].[Warehouses],,AFTER));          
[Measures].[Total On Hand Amount] = (ROOT([Warehouses]),[Measures].[On Hand Amount]);
END SCOPE;

我只需为多维数据集中的每个 [Dimension].[Hierarchy] 重复此 SCOPE,以使 TOTAL 适用于任何选择,包括来自 Power BI 的多个维度。它没有 Axis() 那样的动态功能,但它产生了我需要的结果。

希望这对其他人也有帮助!

于 2018-11-07T15:57:46.163 回答
0

您可以使用该ancestors函数而不是父函数。它需要一个维度参数和第二个参数,该参数显示您想要获得多少级别(树的深度)。因此,如果您知道您的维度有多少级别,您可以使用以下内容:

Ancestors(Axis(1).Item(0).Item(0).Dimension.CurrentMember, 5) 

除了数字,您还可以添加维度级别作为第二个参数。然后它将与指定的维度级别一样深 - 因此,如果您添加根维度级别,它应该到达那里

于 2018-11-05T08:31:50.940 回答