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

时间:2019-04-10 19:39:38

标签: ssas mdx

我正在尝试基于尺寸进行动态计算。假设我有3个维度级别,但使用相同的度量(如Field1 / Field2)来获取平均值。

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

示例: 使用级别1属性维度1时,将划分字段1 /字段2 使用级别2属性,维度2时,将划分字段1 /字段2 使用level3属性,维度3时,将划分Field1 / Field2

这是完全相同的计算,但是在基于不同级别的level1,level2和level3属性进行计算时,它们必须是动态的,

我对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表达式,等效于根据维度级别计算属性。

1 个答案:

答案 0 :(得分:1)

您可以像这样检查级别:

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