0

私は次のスタースキーマを持っています:

Objects       <-> Facts         <-> Simulation
-ObjectID         -ObjectID         -SimulationID
-SimulationID     -SimulationID     
-ObjHierarchy     -Volume
-ObjectType

今、私は両方の次元を使用してキューブをフィルタリングしようとしています:

select [Measures].[Volume] on columns,
[Objects].[ObjHierarchy].[Level 02] on rows
from [DM OC]
where ([Objects].[ObjectType].&[2], [Simulation].[SimulationID].&[52])

ただし、これはSimulationID=52(値を含む)の行を返しますが、SimulationID=53(nullを含む)の行も返します。

ObjHierarchy | Volume
MyObj1       | 12345
MyObj2       | 54321
MyObj1       | (NULL)
MyObj2       | (NULL)

回避策はNonEmptyを使用することですが、キューブが正しい方法でモデル化されていないようです。

4

2 に答える 2

1

これは通常のケースであり、キューブのモデルが間違っていることを意味するものではありません。

MDXでは、結果に行を表示したくない場合は、フィルター関数を使用して行をフィルター処理する必要もあります。あなたの場合、NonEmtpyを使用して空の値を削除する必要があります。

于 2010-09-23T04:11:30.727 に答える
0

次のことを実行できますか:

メンバーXXを[Objects]。[ObjHierarchy].currentMember.Properties( "KEY")として使用

[DM OC]の行で{[Measures]。[Volume]、XX}を選択し、[Objects]。[ObjHierarchy]。[Level 02]を選択します。ここで([Objects]。[ObjectType]。&[2]、[シミュレーション]。[SimulationID]。&[52])

MyObj1とMyObj2は同じキーを持つべきではありません。そうでなければ私は今見ていません。

于 2010-09-29T00:39:28.893 に答える