2013-08-22 123 views
0

我有一個奇怪的問題,當我的子父層次結構中,當所有子一元運算符都是+時,父計算不正確。分析服務父子層次結構

這裏是一元運算符的父子結構的向下運行。

-PBIT (+) 
    -OtherIncome (+) 
    -GrossProfit (+) 
     -Sales  (+) 
     -Cost Of Sales (-) 

這是我跟着http://geekswithblogs.net/darrengosbell/articles/57811.aspx引導和除了事實,有孩子們都與加運算任何父母會增加太多的話,所有的偉大工程。

這裏輸出數據。

enter image description here

正如你可以看到PBIT值是增加銷售量,銷售額及其他收入的成本,共同獲得的價值。 (即使銷售一元運算符的成本是負的!)

起初我以爲它可能只是Excel中,但看着它,MDX查詢給出了相同的值。

爲什麼?它似乎只是當一元運算符是+時,任何其他運行正常。

+0

我已經能夠得到它的正確計算的唯一方法是在添加一個虛擬兒童與非加元運算符。沒有值時,它不會顯示在非空查詢中,但這仍然非常可怕。 –

+0

您的計算腳本或查詢中是否有可能干擾這些值的內容?也許只是刪除'CALCULATE'之外的所有內容,然後運行一個簡單的MDX查詢,而不用任何'WITH'子句。錯誤的行爲是否持續? – FrankPl

回答

1

您參考不描述父子層次結構的設置與一元運算符,因爲我會從上下文假定職位,但用來形容人在父子層次結構使用一個成員在幾個位置。這涉及到多對多的關係。根據http://connect.microsoft.com/SQLServer/feedback/details/243429/wrong-calculation-for-unary-operator-with-many-to-many-relationships,Analysis Services的一個已知限制是一元運算符聚合不能與多對多關係正常工作,而且似乎微軟不會很快改變這種關係。

但至少看起來你已經找到了解決辦法。

0

我建議閱讀章節「一元運算符的層次結構重新分類」從http://www.sqlbi.com/articles/many2many/ 許多到許多革命白皮書它提供了一個很好的解決方案的問題。

或者通過使用自定義彙總的成員,就可以實現類似的東西。