Ssas 多重度量的MDX计算

Ssas 多重度量的MDX计算,ssas,mdx,olap,olap-cube,dimension,Ssas,Mdx,Olap,Olap Cube,Dimension,我必须在OLAP中为20个不同的度量值创建下一个计算。如您所见,所述函数计算上一年的度量值。我必须重复代码20次,仅更改特定度量([Measures].[Sales]),我认为有一种方法可以动态更改特定度量 create MEMBER CURRENTCUBE.[Measures].[Sales ant] as (ParallelPeriod( [Dim Calendar].[Calendar].[Year] ,1 ,[Di

我必须在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.CurrentMember引用度量值,而不是具体的度量值-[Measures].[Sales],因此当您在报告上选择[Measures].[Sales]时,上述范围将适用

希望它能起作用