Ssas

計算測量僅從快照事實的一個維度獲取最新資訊,但保留其他過濾器

  • August 10, 2013

我正在處理 SSAS 2012 SP1 CU4 中的表格多維數據集。我有 3 個維度(申請、申請狀態、日期)和 1 個事實(申請計數)。我的事實表是 requisitionKEY、RequisitionStatusKEY、SnapshotDateKey。

我已經計算了基本上得到給定期間的最後一個非空值(如半加法測量)的度量,無論它是年、月還是日期:

Openings:=CALCULATE(Sum('Requisition Counts'[NumberOfOpeningsQT]), 
Filter('Date','Date'[DateKey] = Max('Requisition Counts'[SnapshotDateKEY])))  

在您將“徵用狀態”加入其中之前,此方法效果很好。我在 2013 年的每一天都有每個申請的行。對於其中一個申請,前 6 個月的申請狀態為待處理,然後從 7 月 1 日至今的所有數據上更改為已批准。當我總結 7 月份月份級別的申請的空缺數量時,使用者會看到兩行:7 月最後一個待處理日的空缺總和,以及 7 月份最後一個空缺日的空缺總和。 7 月獲批。

數據透視表

儘管總數為 2 是正確的,但我需要更改此計算,以便僅獲得所選日期期間的最新申請狀態(已批准),並且在數據透視表中的待批准行中顯示 0 或 null 或空白。

申請狀態表如下所示: 申請狀態

更新:這是我製作的 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。以2013-11059Power Pivot 模型中的請購單為例,因為 2013-07-01 有 1 個 Approved 狀態,2013-07-02 有另一個 Approved 狀態,它只是考慮總計的最後一個狀態,結果為 1。

引用自:https://dba.stackexchange.com/questions/47002