我正在使用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]
中至少一个成员实际关联的计数。
答案 0 :(得分:3)
如果我理解正确,您只想在选择[Measures].[Some Measure]
时覆盖[Some Dimension].[All]
,而且当您的多维数据集中的剩余维度“currentmember
是相应的”全部“成员时。就是这样,然后只需将范围分配更改为SCOPE(Root())
即可。