У меня проблема с простой математической операцией SQL qty * price
возвращает неправильное значение.Простая математическая операция SQL дает неверные результаты
Это SQL-сервер 2005. Для совместимости установлено значение 80 для SQL-сервера 2000.
Любая помощь в понимании того, почему у меня возникли проблемы, показанную ниже
Например:
Transaction Таблица:
id price qty 1 2.77 20.00 1 2.77 25.00 1 2.77 10.00 2 0.10 50.00 2 0.10 80.00 3 0.10 50.00 3 0.10 60.00
SQL
Select id, price, qty, (qty * price) from transact
Реальная проблема была в этом и это была моя ошибка :(
Select id, CAST(price AS DECIMAL(5,2)), qty, (qty * price) from transact
Возвращает следующее:
id price qty Total 1 2.77 20.00 55.400000 Correct 1 2.77 25.00 69.250000 Correct 1 2.77 10.00 27.700000 Correct 2 0.10 50.00 4.800000 Should be 5.0000 2 0.10 80.00 7.680000 Should be 8.0000 2 0.10 50.00 5.050000 Should be 5.0000 2 0.10 60.00 6.060000 Should be 6.0000 3 39.00 1.00 39.000000 Correct 3 39.00 2.00 78.000000 Correct 3 39.00 3.00 117.000000 Correct
типы данных столбцов? – deutschZuid
Я с Джеймсом на этом. Сценарий таблицы и опубликовать инструкцию create table. Я бы предположил, что цена должна быть деньгами, и в зависимости от того, что вы продаете, более чем вероятно, что qty должен быть целым. –