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, я получу другую сумму.Я продолжаю получать разные суммы за разные промежутки времени, почему это происходит.Я ожидал бы, что результаты будут одинаковыми при каждом запуске запроса, который будет соответствовать запросу ниже. Выберите сумму (amt1) из таблицы 1
спасибо Бен
обновление: я использовал union all.спасибо за указание на это.это все еще дает мне другие результаты