2012-05-02 70 views
0

我有以下规定─精度四舍五入的数字

1. Get the A_MINUTES column value from TableA for all rows 
2. Sum the A_MINUTES. 
3. Convert the summed minutes values to hours - divide by 60 
4. Round off the final hours value to 2 decimal places. 

这需要在SQL编写。

你认为这个查询会有舍入错误吗?

SELECT ROUND ((SUM(A_MINUTES)/60.0) , 2) FROM TABLEA 
+1

sql匹配你的语言描述的内容。 – Randy

+0

这是功课吗?如果这样可以,那么在这里请你注意你的问题。人们可能会给你更多的“学术”答案,或试图帮助你更多地了解作业问题。 – Matthew

+0

请定义'舍入错误'。我想大多数主要的关系型数据库管理系统都可以准确地执行业务目标...... –

回答

1

它是否有任何舍入误差?

这取决于您要实施的舍入方案。
的SQL代码,你会贴出完成你的目标,但在SQL默认的舍入方案银行家四舍五入,如默认方案在.NET

http://msdn.microsoft.com/en-us/library/ms175003.aspx

这里是不同的取整方法实现了良好的简短在SQL中:
http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/sql-server-rounding-methods

如果您想实施银行家的舍入方案(如.NET中的默认方案),那么有几个选项。这里是关于这个主题的一个很好的讨论(这是针对Oracle的,但应该适用)
http://www.orafaq.com/forum/t/122001/2/