微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 如何在查询中使用divide函数?

我想显示Overshipment列的百分比.

我的示例查询

select (SPGI09_EARLY_OVER_T – (SPGI09_OVER_WK_EARLY_ADJUST_T) / (SPGI09_EARLY_OVER_T + SPGR99_LATE_CM_T  + SPGR99_ON_TIME_Q))
from 
CSPGI09_OVERSHIPMENT

表名 – CSPGI09_OVERSHIPMENT

我的公式:

-------------------------------------------------------
SPGI09_EARLY_OVER_T – (SPGI09_OVER_WK_EARLY_ADJUST_T)
-------------------------------------------------------
SPGI09_EARLY_OVER_T + SPGR99_LATE_CM_T  + SPGR99_ON_TIME_Q

我想用%显示结果,例如,66.57%

我正在使用sql SERVER 2008

解决方法

假设所有这些列都是int,那么要排序的第一件事就是将它们中的一个或多个转换为更好的数据类型 – int division执行截断,因此任何小于100%的列都会得到0的结果:
select (100.0 * (SPGI09_EARLY_OVER_T – SPGI09_OVER_WK_EARLY_ADJUST_T)) / (SPGI09_EARLY_OVER_T + SPGR99_LATE_CM_T  + SPGR99_ON_TIME_Q)
from 
CSPGI09_OVERSHIPMENT

在这里,我将其中一个数字乘以100.0,这将强制计算结果用浮点数而不是整数来完成.通过选择100,我也准备将其视为%.

我对你的包围感到有些困惑 – 我想我已经把它弄好了 – 但你有一个括号围绕单个值,然后在其他地方你有同一级别的运算符( – 和/)混合,所以依赖于优先规则来定义首先应用哪个运算符.

原文地址:https://www.jb51.cc/mssql/77625.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐