2

合計値に対する非注文トランザクションの値を示す Efficiency という新しいメジャーを作成したいと思います。

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

2 番目の質問に答えるには: メジャーを 2 つ作成します。計算スクリプトでOffers value最初にメジャーを作成Efficiencyし、その後に配置すると、最初のメジャーを 2 番目に使用できます。

計算スクリプトでは使用できません。ステートメント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 に答える