下面是SQL查询中的一个表达式,该表达式返回错误的答案,但是当我在计算器上编写相同的查询时,它将返回相同的结果。
假设(batch.received_percentage)的值等于10,则计算器返回220.35,但是SQL Server返回259.245。
((invoice.unit_price * (1 - (15) / 100))*
((1 - (batch.received_percentage) / 100)))
答案 0 :(得分:2)
SQL Server执行整数除法。您可能可以通过更改以下子表达式来解决此问题:
(invoice.unit_price * (1 - (15) / 100.0))
和:
(1 - (batch.received_percentage) / 100.0)
答案 1 :(得分:0)
数学计算始终遵循BODMAS规则:
((发票。统一价格)((1-15)/ 100)(1-((批次。已接收百分比)/ 100))
答案 2 :(得分:0)
您可以稍微简化一下表情:
invoice.unit_price * (100-batch.received_percentage) * 0.0085