具有相同维度的度量的 SSAS 计算成员

SSAS Calculated Member for measures that have the same Dimension

我正在尝试创建一个计算量度来减去不同组中的量度,但前提是它们具有相同的维度成员(无论可能是什么)。 (编辑 - 基本上在减法中排除 UnknownMember 号码)

我试过使用范围:

CREATE MEMBER CURRENTCUBE.[Measures].[CalcField] as NULL;

SCOPE([Dimension1].[DimensionField1].MEMBERS);
    [Measures].[CalcField] = [Measures].[a] - [Measures].[b];
END SCOPE;

我也尝试过使用元组但没有成功:

CREATE MEMBER CURRENTCUBE.[Measures].[CalcField]
AS ([Measures].[a] - [Measures].[b], [Dimension1].[DimensionField1]);

但我认为我缺少一些基本的东西

编辑

col a b 维度
1. 9 0 x
2. 0 2 x
3. 1 5 空

如果你汇总这些行,我想要答案 7 而不是 5

如果维度正在使用,则使用简单的 CASE WHEN 可行,否则它会再次盲目地减去所有内容

CASE 
  WHEN [Dimension1].[DimensionField1] IS [Dimension1].[DimensionField1].UnknownMember THEN 0 
  ELSE [Measures].[a] - [Measures].[b]
END

使用聚合在高级别工作,但是当我使用维度时,我没有得到每个成员的结果

Aggregate(
  EXCEPT(
    [Dimension1].[DimensionField1].Members, {[Dimension1].[DimensionField1].UnknownMember, [Dimension1].[DimensionField1].[All]}
  ),[Measures].[a]) 
- 
Aggregate(
  EXCEPT(
    [Dimension1].[DimensionField1].Members, {[Dimension1].[DimensionField1].UnknownMember, [Dimension1].[DimensionField1].[All]}
  ),[Measures].[b]) 

解决方法
很抱歉,如果我不清楚我的问题,但我最终通过将我需要的数据放在 ETL 阶段而不是在 Cube

中计算来解决这个问题
With Member [Measures].[CalcField] as   [Measures].[a] - [Measures].[b]

Select [Measures].[CalcField]
on columns,
[Dimension1].[DimensionField1].MEMBERS    
on rows 

from [cube]

您是否尝试过对第二个代码段进行求和或聚合?

CREATE MEMBER CURRENTCUBE.[Measures].[CalcField]
AS 
 Sum(
    [Measures].[a] - [Measures].[b], 
    [Dimension1].[DimensionField1]
 );

CREATE MEMBER CURRENTCUBE.[Measures].[CalcField]
AS 
 Aggregate(
    [Measures].[a] - [Measures].[b], 
    [Dimension1].[DimensionField1]
 );