sql server聚合浮点值

时间:2011-05-27 19:48:49

标签: sql-server-2008 aggregation

HI 在聚合浮动值时,我得到不同的结果。查询如下:

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',我会得到不同的金额。 我不断为不同的时间范围获得不同的金额 为什么会发生这种情况。我希望每次运行查询时结果都相同,这将与下面的查询相匹配 从table1中选择sum(amt1)

感谢 本

更新:我正在使用union all。谢谢你指出来。它仍然给我不同的结果

1 个答案:

答案 0 :(得分:0)

我怀疑您使用的是UNION,因为您的查询中实际上有两个不同的表格,例如table1table2。在这种情况下,当日期改变时,您不应期望总和是相同的。

更新:我刚刚注意到您在一个查询中选择了amt而在另一个查询中选择了amt1,因此没有理由期望这些总和是相同的随着日期的变化。