0

私は MDX を初めて使用しますが、コードをできるだけクリーンに保ちたいと考えています。

今日の売上を見て、ParallelPeriod 関数を使用して LY および LY-1 と比較するクエリがあります。それはこのようなものに見えます..

With Member [Date].[SalesCalendar].[DateToday] as [Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]

SELECT 

    {[Date].[SalesCalendar].[DateToday],

    ParallelPeriod([Date].[SalesCalendar].[Year],1,[Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]),

    ParallelPeriod([Date].[SalesCalendar].[Year],2,[Date].[SalesCalendar].[DateToday]}

    *  

    {[Measures].[Total Sales],[Measures].[Units],[Measures].[Sales Target]}
    ON Columns,

    [Locations].[Location PK].[Location PK]
    on Rows

From MyCube

まず、今日の日付を指すメンバーを定義します。一度定義して、このクエリ(および私が作成した他のクエリ)全体で使用したいのですが、理論は、一度に変更でき、基になるクエリが反応するというものです。

私が抱えている問題は、この計算されたメンバーを ParallelPeriod 関数内で使用しようとすると、結果が得られないことです。上記のクエリでは、最初の列の結果が得られ、ParallelPeriod (LY の場合) への最初の呼び出しは機能しますが、宣言されたメンバーを使用する LY-1 の 2 番目の呼び出しは失敗します。

これは、MDX に関する知識が不足していることが原因であると推測しているため、基本的な何かが欠けていると思います。しかし、頭を壁にぶつけてもうまくいかないので、助けが必要です!

私が間違っていることはありますか?

ありがとう

4

1 に答える 1

0

クエリが評価されるときに が[Date].[SalesCalendar].[DateToday]に置き換えられないため、これは機能しません[Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]

[Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]ピボット テーブルのセルと同じ数値を与えるメンバーを作成しました。

このクエリを試すことができます:

With Member [Date].[SalesCalendar].[DateToday] as [Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]
     Member [Measures].[name] as [Date].[SalesCalendar].CurrentMember.Name

SELECT 
    {[Measures].[name], [Measures].[Total Sales]} ON Columns,
    {[Date].[SalesCalendar].[DateToday], [Date].[SalesCalendar].[Date].&[2012-10-26T00:00:00]} on Rows
From MyCube

Total Sales同じになりますが、そうではありません[Measures].[name]

于 2012-10-26T14:36:37.820 に答える