如何在聚合之前乘以两个度量

How to multiply two measures prior to aggregation

我有两个措施。第一个是金额,第二个由值 -1,0 和 1 组成,所以 table 看起来像这样:

Amount   Sign
--------------
400      -1
200       1
300       0

我想要得到的结果是 400*(-1) + 200*1 + 300*0 = -200,但我得到的是 (400+200+300)*(-1+1+0) = 0

这是我的计算成员:

WITH 
  MEMBER [Measures].[Result]
  AS
[Measures].[Sign]*[Measures].[Amount]
select 
[Measures].[Result] on 0,
[Time].[Time].members on 1
from [MyCube]

在您的 SSAS 项目中,转到数据源视图,为基础事实 table 添加一个 NamedCalculation。在那做你解释的乘法。现在在多维数据集中添加它作为度量。它会完全按照您希望的方式运行。