加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

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

发布时间:2020-05-24 11:59:02 所属栏目:MsSql 来源:互联网
导读:我想显示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_OVER

我想显示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,我也准备将其视为%.

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

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读