MDX计算维度成员的度量

时间:2013-09-24 09:17:36

标签: visual-studio ssas mdx olap dimension

我想创建一个名为效率的新度量,它将非有序事务的值显示为总值:

Efficiency=[100%-(nonordered/total)]

不幸的是,我对MDX的体验相当短暂。我试过这段代码:

    CREATE MEMBER CURRENTCUBE.[Measures].[Efficiency] 
AS 
IIF([Measures].[Offers Value]=0, 0
, WITH MEMBER [Measures].[Offers Value] AS
1- ([Measures].[Offers value], [Is Ordered].[Is Ordered - Status].&[0])
/ ([Measures].[Offers Value]))
,FORMAT_STRING="PERCENT",
, VISIBLE = 1;

遇到的问题是:

  1. [Offers value]=0或计算过程中的其他错误。 MDX中是否存在“OnError”或“IsError”等解决方案?
  2. [Offers value]也是一种计算方法。如何决定在[效率]之前计算[优惠价值]?

1 个答案:

答案 0 :(得分:2)

回答你的第二个问题:你会创建两个度量,如果你先在计算脚本中创建Offers value并在其后面放置Efficiency,那么你可以在第二个问题中使用第一个

您不能在计算脚本中使用WITH,而只能在SELECT语句中使用CREATE MEMBER CURRENTCUBE.[Measures].[Efficiency] AS IIF([Measures].[Offers Value]=0, 0 , 1 - ([Measures].[Offers value], [Is Ordered].[Is Ordered - Status].&[0]) / ([Measures].[Offers Value])) ,FORMAT_STRING="PERCENT", , VISIBLE = 1; 。这可能是您收到错误消息的原因(您的第一个问题)。

任何你的度量定义应该看起来像

WITH ... AS

离开{{1}}。你很接近它!