【发布时间】:2012-03-30 22:35:21
【问题描述】:
我遇到了一个问题,qty * price 的简单 SQL 数学运算返回了不正确的值。
这是 SQL server 2005。2000 SQL server 的兼容性设置为 80。
任何帮助理解为什么我会遇到下面显示的问题
例如:
交易表:
SQL
Select id, price, qty, (qty * price) from transact
真正的问题是这个,这是我的错:(
Select id, CAST(price AS DECIMAL(5,2)), qty, (qty * price) from transact
返回以下内容:
id 价格 数量 总计 1 2.77 20.00 55.400000 正确 1 2.77 25.00 69.250000 正确 1 2.77 10.00 27.700000 正确 2 0.10 50.00 4.800000 应该是 5.0000 2 0.10 80.00 7.680000 应该是 8.0000 2 0.10 50.00 5.050000 应该是 5.0000 2 0.10 60.00 6.060000 应该是 6.0000 3 39.00 1.00 39.000000 正确 3 39.00 2.00 78.000000 正确 3 39.00 3.00 117.000000 正确【问题讨论】:
-
我和詹姆斯一起做这个。编写表格脚本并发布 create table 语句。我建议 Price 应该是钱,根据你卖的东西,qty 很可能应该是一个整数。
标签: sql sql-server tsql sql-server-2005