如何正确替换([Some Dimension]的值。[All],[Some Measure])? (MDX,SCOPE())

时间:2012-09-13 15:20:55

标签: scope ssas mdx olap ssas-2008

我正在使用SQL Server Analysis Servises 2008 R2。

在针对[Some Dimension].[All]计算时,我需要 1 来替换[Some Measure]的值。这是我尝试过的:

SCOPE( [Some Dimension].[All] );
  [Measures].[Some Measure] = 123; // for simplicity sake
END SCOPE;

当我对[Some Dimension]进行查询时,这可以正常工作 - [All]成员返回123,其他成员不受影响,显示实际关联的[Some Measure]值。

但由于一些奇怪的原因,所有其他维度的所有成员现在都会123返回[Some Measure]。我真的迷路了。请告诉我如何解决这个问题,以及为什么会这样。

1 对于那些好奇的人:我想要替换[All]的值的原因是因为[Some Dimension][Some Measure]与多对多相关。因此,元组( [Some Dimension].[All], [Some Measure] )始终返回多维数据集中[Some Measure]的总计数。我想要返回的是[Some Measure][Some Dimension] 中至少一个成员实际关联的计数。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您只想在选择[Measures].[Some Measure]时覆盖[Some Dimension].[All],而且当您的多维数据集中的剩余维度“currentmember是相应的”全部“成员时。就是这样,然后只需将范围分配更改为SCOPE(Root())即可。