【发布时间】:2009-09-17 10:17:13
【问题描述】:
我有一个这样定义的表:
create table #tbFoo
(bar float)
我正在寻找一种方法来舍入列栏中包含的每个值而不更改总和(已知为整数,或者由于浮点数精度而非常接近整数)。
将每个值四舍五入到最接近的整数不起作用(例如:1,5;1,5 将四舍五入为 1;1 或 2;2)
使用多个请求很容易做到这一点(例如,存储原始总和、舍入、计算新总和以及根据需要更新尽可能多的行以返回原始总和),但这不是一个非常优雅的解决方案.
有没有办法使用单个 SQL 请求来做到这一点?
我使用的是 SQL Server 2008,因此欢迎使用该特定供应商的解决方案。
编辑:我正在寻找一个最小化旧值和新值之间差异的请求。换句话说,如果一个更大的值被向下舍入,则永远不应向上舍入,反之亦然
【问题讨论】:
-
一个很好的问题。我将其放入我的博客文章待办事项列表中。
标签: sql sql-server algorithm sql-server-2008