Я ищу способ усечь или удалить лишние десятичные разряды в SQL.Я нашел способ, но у меня проблема со значениями, которые не имеют 3 десятичных знака.
У меня есть следующие данные
ProductID | Price | Amount
------------+----------+---------
100 | 50.01 | 1
101 | 25 | 0.789
Это очень просто, все, что мне нужносделать, это получить сумму по каждому продукту (цена * сумма).
Мой запрос:
select
[ProductID],
[Price],
[Amount],
round(SUM(([Price] * [Amount])),2,1) as 'Total'
from
[Tables]
Что я получу:
ProductID | Price | Amount | Total
-----------+-----------+-----------+-----------
100 | 50.01 | 1 | 50 <=======
101 | 25 | 0.789 | 19.72
Итак, еслимой калькулятор работает, результат этой простой операции:
(50.01 * 1) = 50.01
-
(25 * 0.789) = 19.725
-
Вопрос : SQL делает трюк, отбрасывая 5 из 19,725, но почему (50.01 * 1) равно50?
Я знаю, что если я использую Round ((значение) , 2,0 ) , я получу 50,01, но если я сделаю это, 19,725 станет19.73, и это неправильно для моего заявления.
Что я могу сделать, чтобы это исправить?