sql-server - SQL- 将 Sum int 转换为 Decimal
问题描述
我一直在尝试将这个总和更改为小数。该计算为要在员工工作时间内完成的特定任务数量设定了目标。结果就是问题,因为它继续以 int 形式给出结果。
((sum(IsNull([Employee Hours],0))/NullIf([ProcessTime],0))as decimal(6,2)) as [Planned Tasks],
我已经尝试过 CAST 和 CONVERT,但似乎没有任何效果,结果仍然显示为 int。
这是我尝试的最后一个脚本:
Cast((sum(IsNull([Employee Hours],0))/NullIf([ProcessTime],0))as decimal(6,2)) as [Planned Tasks],
非常感谢任何帮助。
解决方案
我猜问题不是数据类型而是结果。您的代码看起来像 SQL Server,并且 SQL Server进行整数除法,所以1/2
是0
,不是0.5
. 要获得小数,请转换为非整数 - 我倾向于通过乘以来做到这一点1.0
:
Cast(sum(coalesce([Employee Hours], 0) * 1.0 /
NullIf([ProcessTime], 0) as decimal(6, 2)
) as [Planned Tasks],
推荐阅读
- r - gganimate 中两个不同的 geom_smooth() 对象之间的转换
- c++ - DBus 拒绝向系统总线上的自定义服务发送消息
- codenameone - 根据国家/地区格式化电话号码
- excel - 将多行文本单元格从 Word 表复制到 Excel 单元格
- c# - ASP.NET Core Entity Framework 调用存储过程
- cordova - Ionic 4 Native 离线数据存储和网络恢复时同步,即使应用程序关闭
- spring-boot - 带有 kafka 流的 Spring Boot 应用程序
- java - 关于 JAVA 多线程,这个发布者订阅者程序是否正确?
- ios - UIAlert 在 iOS Swift 中显示两次?
- python-3.x - django相关对象引用不显示项目