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。谢谢你指出来。它仍然给我不同的结果
答案 0 :(得分:0)
我怀疑您使用的是UNION
,因为您的查询中实际上有两个不同的表格,例如table1
和table2
。在这种情况下,当日期改变时,您不应期望总和是相同的。
更新:我刚刚注意到您在一个查询中选择了amt
而在另一个查询中选择了amt1
,因此没有理由期望这些总和是相同的随着日期的变化。