2016-07-12 7 views
0

Salesに対して在庫を分析するビジネスのキューブを構築しています。MDX ClosingPeriod関数を正しく使用するには

締め切り在庫数を示す別個の措置が必要です。

ビジネスは小売期間を含む小売期間で実行されます。週は常に日曜日に終了するので、私の在庫は日曜日からのものでなければなりません。

我々は(2016年7月12日(火曜日))は、本日に対する売上高を見ているのであれば、その列は日曜日だけ渡された日曜日の値を、表示する必要があり、7月10日2016年

これは、する必要がありますユーザーがデータを表示しているレベルに応じて動的に表示されます。

  • 日のレベルで最低レベルが表示されている場合、その週のすべての日に、前の日曜日の値が表示されます。最下位レベルが週レベルで表示されている場合、ユーザは日付によってダウンピボットテーブルを壊すが、ちょうどされていない場合は、その後、それぞれの週は、バランス
  • その他、各種

を閉じて、前の週を表示する必要があります

  • 小売週数の場合は、前週の最終日の値が表示されます。

      :ユーザーが期のレベルまでピボットテーブルを壊した 同じルールならば、それは、私たちは以下の関連階層を持つ Date寸法を有し、前

      の最後の日の値を表示する必要があります

    • カレンダー
      • 暦年
      • 暦四半期
      • カレンダ月
    • 小売
      • リテール年
      • 小売期間
      • 小売ウィーク

    私はこのためにClosingPeriod機能を使用することができます知っているが、私は持っています 構文に問題があります。

    私は以下を持っていますが、NULLを取得しています。これは初めての実際のMDX計算なので、これは非常に新しいです!

    WITH MEMBER [Measures].[Closing On Hand Qty] AS 
    (
        ClosingPeriod(
        [Date].[Retail].[Retail Week], 
        [Date].[Retail].CurrentMember 
    ), 
        [Measures].[On Hand Qty] 
    ) 
    
    SELECT 
        [Date].[Retail].[Date].Members ON ROWS, 
        { 
        [Measures].[On Hand Qty], 
        [Measures].[Closing On Hand Qty] 
        } ON COLUMNS 
    FROM 
        Retail 
    WHERE 
        [Date].[Retail Year].&[2017] 
    
  • 答えて

    0

    (注:これは、例外をスローしませんが、MDXの標準は、SELECT句の列前の状態列にある)

    ClosingPeriod私がプレイしていませんでしたが、次のようなものが役立つかもしれません:

    WITH 
    MEMBER [Measures].[Closing On Hand Qty] AS 
    (
        TAIL(
        DESCENDANTS(
         EXISTING [Date].[Retail].[Retail Week], 
         [Date].[Retail].[Date] 
        ) 
    ).ITEM(0).ITEM(0) 
    ,[Measures].[On Hand Qty] 
    ) 
    SELECT 
        { 
        [Measures].[On Hand Qty], 
        [Measures].[Closing On Hand Qty] 
        } ON 0, 
        [Date].[Retail].[Date].MEMBERS ON 1 
    FROM Retail 
    WHERE [Date].[Retail Year].&[2017]; 
    

    私は次のようなものが働くかもしれないと思うCLOSINGPERIODのためのドキュメントを見てみると:

    WITH MEMBER [Measures].[Closing On Hand Qty] AS 
    (
        ClosingPeriod(
        [Date].[Retail].[Date], 
        EXISTING [Date].[Retail].[Retail Week] 
    ), 
        [Measures].[On Hand Qty] 
    ) 
    SELECT 
        { 
        [Measures].[On Hand Qty], 
        [Measures].[Closing On Hand Qty] 
        } ON COLUMNS, 
        [Date].[Retail].[Date].Members ON ROWS 
    FROM Retail 
    WHERE [Date].[Retail Year].&[2017]; 
    
    関連する問題