2016-10-05 4 views
0

私は、その日付を使用してプロモーションの売上を計算したいと考えています。プロモーションの開始日の21日前からの平均売り上げ、プロモーションの開始日と終了日の間の売上、プロモーションの終了日から21日後の売上の3つの指標が必要です。 Visual Studioで以下のコードでavgがハイライト表示されるのはなぜですか?ここで同じAVG(EXISTING())構文エラー

CREATE MEMBER CURRENTCUBE.[Measures].[Sales in promotion] 
AS Avg(Existing([Promotion].[Promotion name].[Promotion name]),[Measures].[Sales]), ... 

:私は合計行う場合

CREATE MEMBER CURRENTCUBE.[Measures].[Sales before promotion] 
AS (EXISTING([Promotion].[Promotion name].[Promotion name]), AVG(strtomember("[Date].[Date].&["+ [Promotion].[Date].currentmember.member_key+"]").lag(21) : strtomember("[Date].[Date].&["+ [Promotion].[Date From].currentmember.member_key+"]"), 
[Measures].[Sales])) ... 

(既存の())最初の測定では、合計が正しく計算されるが、それは私が平均を取得することはできません。

+0

プロモーションごとの平均値が必要ですか?たとえば、答えが(TotalSales/2)である期間に2つのプロモーションがある場合 – whytheq

答えて

1

EXISTING[Promotion]WHEREまたはSELECT節のクエリの一部である場合にのみ役立ちます。これらの句のいずれにも含まれていない場合、EXISTINGはメンバー1人 - Allです。

NonEmptyを試して、期間ロジックをカスタムセットに移動できますか?

WITH 
    SET [PERIOD] AS 
    STRTOSET(
     "[Date].[Date].&["+ [Promotion].[Date].currentmember.member_key+"].lag(21) 
     : 
    [Date].[Date].&["+ [Promotion].[Date From].currentmember.member_key+"]" 
    ) 

投稿したコードから、1日の平均値と平均値を宣伝したいのかどうかはわかりません。 21日間に2回のプロモーションがあったとしたら、これはあなたが欲しいという意味ですか(合計/ 2/21)?

+0

ありがとう、私はこれを試してみます。 1回のプロモーションごとに平均21日以上欲しいです。 – Dodzik

+0

@ Dozikので、2つのプロモーションが過去21日間に起こった場合、計算は(合計/ 42)ですか? – whytheq

+0

これはExcelのピボットテーブルに表示されるため、1回のプロモーション(プロモーション\ 21)のために計算されることがあります。また、ユーザーが行を折りたたむときに、41ではなく、プロモーション21になります。私が想像しているように動作するかどうかを知らせます。 – Dodzik