问题描述
|
喜
汇总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
,因此没有理由期望总和与日期更改相同。