问题描述
我必须在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]时,报告的范围将适用。
希望它会起作用。