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
4

1 回答 1

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/

于 2012-05-02T15:44:13.100 回答