SSAS 2012 SP1 CU4で表形式のキューブに取り組んでいます。私は3つのディメンション(要求、要求ステータス、日付)と1つのファクト(要求カウント)を持っています。私のファクトテーブルは、requisitionKEY、RequisitionStatusKEY、SnapshotDateKeyの粒度にあります。
年、月、または日付であるかどうかにかかわらず、指定された期間の本質的に最後の空でない値(準加法メジャーなど)を取得するメジャーを計算しました。
Openings:=CALCULATE(Sum('Requisition Counts'[NumberOfOpeningsQT]),
Filter('Date','Date'[DateKey] = Max('Requisition Counts'[SnapshotDateKEY])))
これは、求人ステータスをミックスに投入するまでうまく機能します。 2013年の毎日の求人ごとに行があります。求人の1つについて、求人ステータスは最初の6か月間保留中で、その後7月1日から現在までのすべてのデータで承認済みに変更されました。 7月の求人の求人の数を月レベルで要約すると、ユーザーには2つの行が表示されます。保留されていた7月の最後の人口の日付の求人の合計と、最後の人口の日付の求人の合計承認された7月。
合計2は正しいですが、この計算を変更して、選択した期間(承認済み)の最新の要求ステータスのみを取得し、ピボットテーブルの保留中の承認行に0またはnullまたは空白を表示する必要があります。
Requisition Statusテーブルは次のようになります。
更新:これは PowerPivotモデルへのリンク です。この質問への回答に役立つように、スクラブされたデータが含まれています。これにより、テーブルスキーマの説明が改善されます。 NumberOfOpeningsQTフィールドは、基本的には、そのジョブでのオープンポジションの数です。 1の場合もあれば、1を超える場合もあります。通常、時間の経過に伴って変化することはありませんが、可能性はあると思います。開口部の計算で希望の答えが得られるようにしています。私はそこに他のいくつかの計算を入れましたので、私が試したいくつかのことを約束しましたが、仕事に行くことができなかったことを示します。
次の計算を試すことができます。
Openings:=
CALCULATE( SUM( 'Requisition Counts'[NumberofOpeningsQT] )
, CALCULATETABLE( LASTNONBLANK( 'Requisition Counts'[SnapshotDateKEY] , 1 )
, ALL( 'Requisition Status' )
)
)
重要な部分は、外側のCALCULATE
に適切なフィルターコンテキストを設定することです。
CALCULATETABLE
を使用して、外側のCALCULATE
で検討する特定の行を定義します:すべての要求(または特定の要求)の最後の空白でないスナップショット日付、ピボットテーブルの各求人のコンテキストを考慮してください)、求人ステータスのフィルタに関係なく、これは ALL
関数を使用して実現されます。
メジャーは期待どおりに機能しません。 Approvedの合計が2であると予想するとします。例として、Power Pivotモデルからの2013-11059
要求を使用します。 2013-07-01に1つの承認済みステータスがあり、2013-07-02にもう1つあります。合計の最後のステータスを考慮するだけなので、1になります。
私はまだこれをモデル化していませんが、心に浮かぶのは、CALCULATE()スコープに別のFILTER()を追加することです。これには、FILTER( 'Requisition Status'、 'Requisition Status' [Key] = MAX( 'があります。 FactRequisition '[RequisitionKey]))。私の考えでは、これを追加すると、購買依頼テーブルが最新の購買依頼のみを含むようにフィルターされます-購買依頼が承認から保留中の承認に切り替えられず、これによりねじれが発生すると想定しています...