具有 2 個度量值組(與維度的關係不同)的多維數據集在報表中返回過多的維度成員
我有一個包含來自零售業務的庫存數據的多維數據集。它有 2 個度量值組 - 一個包含在每個盤點批次中計數的庫存單位數(與產品、批次和時間維度相關),另一個包含產品價格(僅與產品維度相關)。
價格度量組中的度量使用 Min 和 Max 運算符(即它們顯示 Products 維度的選定成員的最低或最高價格)。
我似乎已經正確配置了多維數據集和維度(價格度量按預期顯示)……除了以下情況:
如果我在 Excel 中查詢多維數據集並按時間和批次獲取單位,我會看到預期的結果(見下圖,在 Time=2015 上過濾,並隱藏沒有數據的行),即只有具有所選單位事實數據的批次時間維度成員。
如果我現在添加一個價格度量(不更改任何過濾器),則 Units 總數不變(如預期的那樣),但我現在看到Batch 維度中的每個成員(見下圖)。這對最終使用者來說是個問題,因為他們只想查看先前選擇的批次中產品的價格。
從技術角度來看,這是有道理的——價格事實與時間無關,因此不能像單位那樣被我的時間過濾器過濾。
***我可以做些什麼(在多維數據集設計或 Excel 中)來消除給定過濾器沒有單位的批次成員?***注意:我無法讓使用者編寫 MDX 查詢 - 報表建構需要保持“點擊”!
編輯 27/1 (添加額外的螢幕截圖來說明設置忽略無關維度 = False per TomV’s answer的奇怪副作用)
正如您正確指出的那樣,當您嘗試在與其沒有關係的維度上顯示度量時會發生這種情況。
你基本上有2個選擇
- 採用
IgnoreUnrelatedDimensions
- 使用
MDX
解決方案我建議您嘗試第
IgnoreUnRelatedDimensions
一個,因為這些措施可以更好地聚合,並且NonEmptyCrossJoins
能夠從定義的Bitmap Indexes
使用時受益Attribute Relationships
。由於可能存在性能問題,MDX 解決方案更像是最後的手段,您還需要為您擁有的每個度量定義一個計算度量。MDX 解決方案很可能很複雜,或者會弄亂您的總數/顯示不正確的數據。
忽略無關維度
在查看 Adventureworks 2012 多維數據集時,您會遇到這種情況,其中員工未連結到“網際網路銷售”,但他們連結到“經銷商銷售”。
瀏覽多維數據集時,當您在員工維度上添加來自兩個度量值組的度量值時,結果與您的結果相同。
您可以通過將
IgnoreUnrelatedDimensions
屬性設置為False
on來解決此問題Measure Group
。重新處理多維數據集並刷新瀏覽器後,結果現在如下所示:
不過有一些注意事項,例如設置問題
DefaultMember
如果
DefaultMember
不是不All level
相關維度的屬性之一,則您不會獲得聚合數據,因為預設成員仍然充當過濾器,即使它未包含在您的數據透視表中:例如,
DefaultMember
像這樣在員工維度的性別屬性上設置屬性後。這是報告中不包含切片器時的結果。當然,你會想在這裡看到總數:
我似乎記得其他一些邊緣情況,
calculated measures
但我不記得具體情況。MDX 解決方案
如果您遇到任何邊緣情況,您將不得不求助於
MDX
@GregGalloway 發布的解決方案,但這可能最終會變得乏味並且非常具體到單個報告或案例:CREATE MEMBER CURRENTCUBE .[Measures].[Max Current CP With Units] AS IIf ( NOT IsEmpty ( [Measures].[Units] ), [Measures].[Max Current CP], NULL ) ;
該解決方案的缺點是您會弄亂總計的外觀並可能顯示不正確的數據,但在您使用 MIN/MAX 聚合的價格資訊的特定情況下這可能是可以接受的,但會完全打破總和,並且可能會顯示向您的使用者提供虛假數據。
例如在執行此查詢時
WITH MEMBER [Measures].[Filtered internet order count] as ' IIf ( NOT IsEmpty ([Measures].[Reseller Order Count] ), [Measures].[Internet Order Count], NULL) ' SELECT {[Measures].[Filtered internet order count],[Measures].[Reseller Order Count]} ON 0, [Employee].[Employees].allmembers ON 1 FROM [Adventure Works]
產生這個結果
這看起來同樣奇怪,因為總數與每個成員相同。但這在您的最低/最高定價的具體情況下可能是可以接受的,我認為它主要顯示虛假數據,因為這些員工沒有網際網路銷售。
我想如果您控制報告,那將是可能的。對於您編輯中添加的數據透視表,我想它會產生好的結果。