1

datediff 関数を使用して SSAS で計算されるメンバーを作成しようとしていますが、まったく機能していないようです。

要件は次のとおりです
。datediff(day, XDate where Type = 2 AND St​​atus IN (1,2,3), XDate where Type = 3)

それをSSASで計算されたメジャーの適切なMDXに変換する方法がわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

DateDiff と呼ばれる計算メジャーを示すサンプル クエリを次に示します。トラブルシューティングを容易にするために、複雑な計算をより小さな部分に分解することを好みます。お好みで組み合わせることができます。ここでいくつかの次元と尺度を考案しましたが、これがどのように機能するかを見て、それに応じて適応できることを願っています. 基本的に、レコードを特定のステータス コード (またはタイプ コード) と組み合わせて、関連するすべての日付を取得するセットを取得していますが、ステータス カウント (任意 - 実際には任意のメジャーテーブルで行います)。次に、最後のものを選択します-ディメンションの並べ替えが正しい場合はすべてが日付順であると仮定し、抽出で日付を選択します-そして、それはセットであるため-Item(0)のメンバーに減らします.Item(0)。次に、DateDiff 関数で使用する名前を取得します。私'

    with 
    member [Measures].[First Date] as
      iif(Record.Record.CurrentMember Is [Record].[Record].[All],
      null,
Extract(
Tail(
NonEmpty(
    (Record.Record.CurrentMember, 
    {[Status Code].[Status].&[1],[Status Code].[Status].&[2],[Status Code].[Status].&[2]},
    [Date].[Date].[Date].Members),
    [Measures].[Status Count]), 1), [Date].[Date])
).Item(0).Item(0).Name

member measures.[Second Date] as

iif(Record.Record.CurrentMember Is [Record].[Record].[All],
null,

Extract(
Tail(
NonEmpty(
    (Record.Record.CurrentMember, 
    [Type].[Type].&[3],
    [Date].[Date].[Date].Members),
    [Measures].[Status Count]), 1), [Date].[Date])
).Item(0).Item(0).Name

member measures.[DateDiff] as 

iif(IsEmpty([Measures].[First Date]), null, 
datediff("d", [Measures].[First Date], [Measures].[Second Date]))

select
{[Measures].[Status Count], 
[Measures].[First Date], 
[Measures].[Second Date], 
[Measures].[DateDiff]}
on columns,
[Record].members on rows
from [status]
于 2012-06-21T16:21:21.547 に答える