我有以下要求 -
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
答案 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/