DimA、DimB、DimCおよびDimDのキューブを想像してください。SSAS MDX計算されたメンバー、複数のスコープ
計算メンバーは、DimAまたはDimBに対してスライスした場合にのみ計算する必要があります。 DimCまたはDimDに対してのみスライスした場合、Nullが返されます。
は現在、私は、以下の3人の計算メンバーを使用することによって、これを達成している:私はこれらのかなりの数を作成する必要がCreate Member CurrentCube.[Measures].[CalMeasure1] As Null, VISIBLE = 0;
SCOPE([Measures].[CalcMeasure1]);
SCOPE ([DimA].[DimA].[DimA]);
This = [Measures].[Camp Index];
END SCOPE;
END SCOPE;
Create Member CurrentCube.[Measures].[CalcMeasure2] As Null, VISIBLE = 0;
SCOPE([Measures].[CalcMeasure2]);
SCOPE ([DimB].[DimB].[DimB]);
This = [Measures].[Camp Index];
CREATE MEMBER CURRENTCUBE.[Measures].[CalcMeasure3]
AS IIF(ISEMPTY([Measures].[CalcMeasure1]),[Measures].[CalcMeasure2],[Measures].[CalcMeasure1]),
VISIBLE = 1 ;
END SCOPE;
END SCOPE;
ので、理想的に、私はではなく、単一の尺度でこれをやってみたかったです3つの別々の措置。私は入れ子スコープの作成を試みました。また、両方のディメンション階層を単一のスコープ内に配置しようとしました。しかし、これらの方法のどちらも機能しません。両方の方法では、小節がDimAとDimBの両方に対してスライスされている必要があります。私はそれがDimAまたはDimBのいずれかに対してスライスされていれば動作する必要があります。別のピボットテーブルの用途のために、期待結果 - :
注私の上記のコードは仕事、私は1つだけ計算されるメンバに
[編集]を、それを凝縮したくありません。
DimA Attribute CalcMeasure3
1 1.1
2 1.1
3 8.6
DimB Attribute CalcMeasure3
4 2.1
5 2.1
6 9.6
DimA Attribute DimC Attribute CalcMeasure3
1 A 1.1
2 B 1.1
3 C 8.6
DimB Attribute DimD Attribute CalcMeasure3
4 D 1.1
5 E 1.1
6 F 8.6
DimC Attribute CalcMeasure3
A (Null)
B (Null)
C (Null)
DimD Attribute CalcMeasure3
D (Null)
E (Null)
F (Null)
(upped)でスライスしたときのNULL – whytheq