2

我想创建一个名为效率的新度量,它显示非有序交易的价值占总价值:

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]也是一个计算量度。我如何决定在 [效率] 之前计算 [报价价值]?
4

1 回答 1

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. 你已经接近它了!

于 2013-09-24T09:33:18.457 回答