如何在SSDT中使用MeasureExpression?

How to use MeasureExpression In SSDT?

事实上我有这样的事情table :

一个名为 dimType 的维度可以具有这些值 "FIND , LOSE , 礼物" 和一个名为 Count 的度量,它有一个正数

我想通过 SUM AggregateFunction 在 SSDT 中进行此度量,但稍作更改,在聚合之前我想否定此 Count 如果它是类型 LOSE 例如:

类型:查找 /计数:12
类型:LOSE / 计数:5
类型:GIFT / 数量:4

然后:总和(计数)= 12-5+4 = 11

我应该在 Measure Properties 中使用 MeasureExpression 吗?我该怎么做?

实际上,最简单的方法是 SQL:

iif(type = 'LOSE',-count,count)

如果您出于某种原因需要正聚合和负聚合,您可以使用 MDX 计算。

简单的一个:

[Measures].[Count] - ([dimType].[Type].[LOSE],[Measures].[Count]) * 2

通用一个:

Sum(
    Existing [dimType].[Type].[Type].Members,
    Iif(
        [dimType].[Type].CurrentMember is [dimType].[Type].[LOSE],
        -[Measures].[Count],
        [Measures].[Count]
    )
)