表达式返回错误答案

时间:2018-08-12 13:21:36

标签: sql sql-server

下面是SQL查询中的一个表达式,该表达式返回错误的答案,但是当我在计算器上编写相同的查询时,它将返回相同的结果。

假设(batch.received_percentage)的值等于10,则计算器返回220.35,但是SQL Server返回259.245。

((invoice.unit_price * (1 - (15) / 100))*
((1 - (batch.received_percentage) / 100)))

3 个答案:

答案 0 :(得分:2)

SQL Server执行整数除法。您可能可以通过更改以下子表达式来解决此问题:

(invoice.unit_price * (1 - (15) / 100.0))

和:

(1 - (batch.received_percentage) / 100.0)

答案 1 :(得分:0)

数学计算始终遵循BODMAS规则:

  • B支架
  • O-open
  • D分区
  • M乘法
  • A加法
  • S减
  

((发票。统一价格)((1-15)/ 100)(1-((批次。已接收百分比)/ 100))

答案 2 :(得分:0)

您可以稍微简化一下表情:

invoice.unit_price * (100-batch.received_percentage) * 0.0085