sql - 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)
解决方案
佐罗夫:提示:implicit data type conversion
。If you execute SELECT 1.25/(1-(50/100.0))
你会发现不同之处。——</p>
我已经接受了这个建议并相应地调整了我的代码,现在已经解决并且可以工作了!
非常感谢
安迪
推荐阅读
- c# - 为什么我的程序需要两行输入,为什么我的 GPA 计算错误 c#?
- log4j - Ignite Log4j 未将日志创建为 ignite.log
- python - 从 txt 文件中获取字典键和值
- javascript - Socket.io 未在 YouTube 的 IFrame API onStateChange 中连接和发射
- python - 哪种建模方法更好?
- c++ - 进程在 code::blocks c++ 中返回 -1073741819 (0xC0000005)
- java - 使分形景观看起来更逼真
- amazon-web-services - 用于运行特定 Python 函数的 AWS 服务
- xamarin - Xamarin.Forms UWP 项目是否支持 Lottie 动画?
- java - 在while循环中输入带有System.out.format的命令