我有以下星型模式:
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
的重复行(带有空值):
ObjHierarchy | Volume
MyObj1 | 12345
MyObj2 | 54321
MyObj1 | (NULL)
MyObj2 | (NULL)
解决方法是使用NonEmpty,但是看起来这个多维数据集似乎没有以正确的方式建模。
答案 0 :(得分:1)
这是一个通常的情况,并不意味着立方体的模型错误。
在MDX中,如果您不希望它们出现在结果中,则还应使用任何过滤器功能过滤行。在您的情况下,您应该使用NonEmtpy来消除空值。
答案 1 :(得分:0)
您可以执行以下操作:
将成员XX作为[Objects]。[ObjHierarchy] .currentMember.Properties(“KEY”)
在列上选择{[Measures]。[Volume],XX}, [对象]。[ObjHierarchy]。[级别02]在行上 来自[DM OC] where([Objects]。[ObjectType]。&amp; [2],[Simulation]。[SimulationID]。&amp; [52])
MyObj1和MyObj2不应该有相同的密钥;否则我现在看不到。