2012-05-02 5 views
0

У меня есть следующие requirement-Точность округления чисел

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/

Смежные вопросы