如果在使用與Round()函數一起返回的值時,SUM()函數返回的值未被當作「正常」數字處理的工作中遇到問題。Mdx Sum返回非整數值
嘗試此MDX例如
WITH
MEMBER SomeNumber AS 0.595
SET SomeNumberSet AS
{[SomeNumber], [SomeNumber], [SomeNumber], [SomeNumber], [SomeNumber], [SomeNumber], [SomeNumber], [SomeNumber] }
MEMBER SomeNumberSum AS
Round(SUM([SomeNumberSet], [Measures].[SomeNumber])/8, 2)
SELECT [SomeNumberSum] ON 0
FROM [SomeCube]
此代碼返回0.59,組的總和是4.76,然後由8 = 0595劃分。由於MDX使用銀行家舍入,所以應該舍入到0.60。
只需使用Round(0,595)即可獲得正確的結果。
請告訴我更奇怪的是,如果我們在設定只使用SomeNumber 6倍以下,在同一乘數輪函數鴻溝,我們得到0.6(這是正確的)
另外,如果我換行Sum()與StrToValue()函數,它的工作原理,即使我在集合中使用多於5個SomeNumbers
發生了什麼?!
這就是我們所說的錯誤或錯誤的文檔,甚至發生到MS :-) – ic3 2012-02-09 06:41:24
會員SomeNumberSum圓形(0.595,2)足夠 – ic3 2012-02-09 06:42:03
是, ROUND(0.595,2)返回正確的結果:) 但是,當一組超過X項目,除以X,則返回錯誤的值。 (X> 5) – 2012-02-09 14:19:18