多种度量的MDX计算

问题描述

我必须在OLAP中为20个不同的度量创建下一个计算。如您所见,所描述的函数计算上一年的度量值。我必须重复代码20次,仅更改特定的度量([Measures].[Sales]),我认为有一种方法可以动态更改特定的度量。

create MEMBER CURRENTCUBE.[Measures].[Sales ant] as
(ParallelPeriod(
             [Dim Calendar].[Calendar].[Year],1,[Dim Calendar].[Calendar].CurrentMember
            ),[Measures].[Sales]),VISIBLE = 1,ASSOCIATED_MEASURE_GROUP = 'Fact Sales';

MDX中是否有一种方法可以知道正在使用[Measures]组中的哪个度量?在这种情况下,这是实现它的最佳方法

解决方法

如果我没记错的话,您可以创建一组隐藏的措施,如下所示:

CREATE HIDDEN STATIC SET CURRENTCUBE.[My Set Of Measures] AS 
{
[Measures].[Measure 1],[Measures].[Measure 2],[Measures].[Measure 3]
};

然后您可以为此集合创建范围分配:

Scope ([My Set Of Measures]);
this = (ParallelPeriod(
             [Dim Calendar].[Calendar].[Year],1,[Dim Calendar].[Calendar].CurrentMember
            ),Measures.CurrentMember)
End Scope;

请注意,代替具体的度量-[Measures]。[Sales],您将使用Measurements.CurrentMember引用度量,因此,当您选择[Measures]。[Sales]时,报告的范围将适用。

希望它会起作用。