首页 > 解决方案 > SQL Server Maths 函数在声明的变量/实际值之间有什么不同?

问题描述

我一直在尝试在 SQL Server 中创建一些东西以用于报告目的,但这些数字根本不起作用......我最初在 Microsoft excel 中进行了计算,并得到了我想要转换为 SQL Server 并完成它的公式,并得到了我没想到的价值。所以我把它分解成最基本的;据我了解,下面的 2 个查询完全相同。但是 SQL 以不同的方式计算它们。请参阅下面导致问题的代码。

DECLARE @CostPrice AS NUMERIC (5,3)
DECLARE @MarginPercent AS NUMERIC (5,3)

SET @UnitPrice = 1.90
SET @CostPrice = 1.25
SET @MarginPercent = 50

SELECT @CostPrice/(1-(@MarginPercent/100)) (Returns value of 2.5, which I want)
SELECT 1.25/(1-(50/100)) (Returns value of 1.25, which is not what i expected)

标签: sqlsql-servermath

解决方案


佐罗夫:提示:implicit data type conversionIf you execute SELECT 1.25/(1-(50/100.0))你会发现不同之处。——</p>

我已经接受了这个建议并相应地调整了我的代码,现在已经解决并且可以工作了!

非常感谢

安迪


推荐阅读