SSAS - 您可以根据属性的维度级别进行 MDX 计算吗?

SSAS - Can you do MDX calculations based on dimension level of an attribute?

我正在尝试根据维度进行动态计算。假设我有三个维度级别,但使用与 Field1 / Field2 相同的度量来获取平均值。

相同的计算适用于每个维度;但是我在不同的级别使用不同的属性来计算平均值。

示例: Field1/Field2在使用level1属性时划分,dimension1 Field1/Field2在使用level2属性时划分,dimension2 Field1/Field2在使用level3属性时划分,dimension3

这是完全相同的计算,但在基于以下不同级别进行计算时需要动态:级别 1、级别 2 和级别 3 属性,所有这些属性都可能处于不同的维度。

我是 MDX 的新手,所以任何编码帮助将不胜感激!

我还没有尝试过任何东西,因为我需要一个代码示例来了解如何编写表达式。

我见过类似的东西,但不知道它是否在正确的范围内:

 WITH MEMBER [Measures].[Booking Window Value] AS
 [PNR Details].[Booking Window].CURRENTMEMBER.MEMBER_VALUE
 MEMBER [Measures].[Avg Booking Window Value] AS
 AVG([PNR Details].[Booking Window].[Booking Window].MEMBERS,[Measures]. 
 [Booking Window       Value])
 SELECT
 [Measures].[Avg Booking Window Value] ON COLUMNS
 FROM
 [SalesAnalysis]

我希望输出是 MDX 表达式,相当于根据维度级别计算属性。

您可以这样检查等级:

WITH MEMBER [Measures].[Booking Window Value] AS
CASE WHEN
    [MyDimension].[MyHierarchy].CURRENTMEMBER.Level
IS
    [MyDimension].[MyHierarchy].[Level1Name]
THEN
//Calculation for Level1
111
WHEN
    [MyDimension].[MyHierarchy].CURRENTMEMBER.Level
IS
    [MyDimension].[MyHierarchy].[Level2Name]
THEN
 //Calculation for Level2
222
ELSE

333

END