sql服务器聚合浮点值

问题描述

| 喜 汇总float值时,我得到了不同的结果。查询如下
declare @cy datetime
set @d = \'12/01/2010\'

select SUM(total) from (
select sum(amt1) as total from table1
where date1 < @d  
union all
select sum(amt1) as total from table1
where date1 >= @d
) as a 
amt1的数据类型为float。 因此查询只是汇总表table1中的列总数。 现在,如果我将变量@d更改为让我们说\ '01 / 01/2010 \',则会得到不同的金额。 我在不同的时间范围内不断获得不同的金额 为什么会这样。我希望每次运行查询的结果都相同,这将与下面的查询匹配 从表1中选择sum(amt1) 谢谢 本 更新:我正在使用全部工会。谢谢指出。它仍然给我不同的结果     

解决方法

        我怀疑您使用的是
UNION
,因为查询中实际上有两个不同的表,例如
table1
table2
。在这种情况下,当日期更改时,您不应期望总和相同。 更新:我刚刚注意到您在一个查询中选择
amt
,在另一个查询中选择
amt1
,因此没有理由期望总和与日期更改相同。