У меня есть таблица, определенная так:
create table #tbFoo
(bar float)
И я ищу способ округлить каждое значение, содержащееся в столбце столбца, без изменения общей суммы (которая, как известно, является целым числом или очень близка к целому числу из-за точности числа с плавающей запятой).
Округление каждого значения до ближайшего целого не будет работать (например, 1,5; 1,5 будет округлено до 1; 1 или 2; 2)
Это довольно легко сделать, используя несколько запросов (например, сохранение исходной суммы, округление, вычисление новой суммы и обновление столько строк, сколько необходимо для возврата к исходной сумме), но это не очень элегантное решение .
Есть ли способ сделать это с помощью одного запроса SQL?
Я использую SQL Server 2008, поэтому приветствуются решения, использующие преимущества этого конкретного поставщика.
Редактировать: Я ищу запрос, минимизирующий разницу между старыми значениями и новыми. Другими словами, значение никогда не должно округляться, если большее значение было округлено в меньшую сторону, и наоборот