Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单的SQL数学运算给出不正确的结果_Sql_Sql Server_Tsql_Sql Server 2005 - Fatal编程技术网

简单的SQL数学运算给出不正确的结果

简单的SQL数学运算给出不正确的结果,sql,sql-server,tsql,sql-server-2005,Sql,Sql Server,Tsql,Sql Server 2005,我遇到了一个问题,qty*price的简单SQL数学操作返回了一个不正确的值 这是SQLServer2005。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

我遇到了一个问题,
qty*price
的简单SQL数学操作返回了一个不正确的值

这是SQLServer2005。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 实际的问题是,这是我的错:(

返回以下内容:

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 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正确
您的价格在某个地方被四舍五入。您正在运行的选择没有显示实际价格

select round(0.096, 2) price, 0.096 * 50.00 total
结果:

price    total
0.10     4.80000

您的价格在某个地方被四舍五入。您正在运行的选择没有显示实际价格

select round(0.096, 2) price, 0.096 * 50.00 total
结果:

price    total
0.10     4.80000

在这一点上,我支持James。为表编写脚本并发布创建表语句。我建议价格应该是货币,并且取决于您销售的产品,数量很可能应该是整数。在这一点上,我支持James。为表编写脚本并发布创建表语句。我建议价格应该是货币,取决于g关于你卖的东西,数量很可能应该是一个整数。@所有的文章你都是正确的。我真的试图在发布问题之前更好地分析。我当时正处于时间紧迫期,这总是最容易让你绊倒的事情。在清理我的表和sql以便能够发布时,价格列被强制转换(价格为十进制(5,2)))我仔细看了一下,这不在我的价格*数量的数学中。谢谢你的帖子,很抱歉问了一个我本来应该抓住的问题。很久以前,有人告诉我,当你试图责怪编译器时,把矛头指向你自己……@所有的帖子你都是对的。我真的试图在发布iss之前更好地分析我当时正处于一个时间紧迫的时期,这总是会让你绊倒的最微小的事情。在清理我的表和sql以便能够发布时,价格列被强制转换(价格为十进制(5,2))我仔细考虑了价格*数量这一问题。谢谢你的帖子,也很抱歉问了一个我本该抓住的问题。很久以前有人告诉我,当你试图责怪编译器时,把矛头指向你自己。。。。