如果在使用与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