我遇到一个问题,qty * price
的简单SQL数学运算返回的值不正确。
这是SQL Server 2005.对于2000 SQL Server,兼容性设置为80。
任何有助于理解我遇到问题的原因
例如:
交易表:
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
答案 0 :(得分:4)
你的价格正在某处。您正在运行的选择未显示实际价格。
select round(0.096, 2) price, 0.096 * 50.00 total
结果:
price total
0.10 4.80000