Ssas MDX查询未正确筛选

Ssas MDX查询未正确筛选,ssas,mdx,olap,cube,Ssas,Mdx,Olap,Cube,我有以下星形模式: Objects <-> Facts <-> Simulation -ObjectID -ObjectID -SimulationID -SimulationID -SimulationID -ObjHierarchy -Volume -ObjectType 但是,对于SimulationID=52,这将返回带有值的行,但对于SimulationID=53,这将返回带

我有以下星形模式:

Objects       <-> Facts         <-> Simulation
-ObjectID         -ObjectID         -SimulationID
-SimulationID     -SimulationID     
-ObjHierarchy     -Volume
-ObjectType
但是,对于SimulationID=52,这将返回带有值的行,但对于SimulationID=53,这将返回带有空值的重复行:

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

一种解决方法是使用NoneEmpty,但似乎多维数据集的建模方式不正确。

这是一种常见情况,并不意味着多维数据集的模型错误


在MDX中,如果不希望行出现在结果中,还应使用任何筛选函数筛选行。在您的情况下,应该使用NonEmtpy删除空值。

您能执行以下操作吗:

将成员XX作为[Objects].[ObjHierarchy].currentMember.Properties键

在列上选择{[Measures].[Volume],XX}, 行上的[Objects].[ObjHierarchy].[Level 02] 来自[DM OC] 其中[Objects].[ObjectType].&[2],[Simulation].[SimulationID].&[52]


MyObj1和MyObj2不应具有相同的密钥;否则我现在看不到。

该查询返回相同数量的结果,xx成员返回所有行的值,即使对于卷为null的行也是如此。中的所有对象都有不同的键,因此,即使第一个MyObj1的键与第二个MyObj1的键也不同。这同样适用于MyObj2-对于每个SimulationID,都有不同的对象集合。看起来您有不同的MDX成员,名称相同,因此这解释了结果。
ObjHierarchy | Volume
MyObj1       | 12345
MyObj2       | 54321
MyObj1       | (NULL)
MyObj2       | (NULL)