Ada*_*New 8 sql sql-server sql-server-2005 sql-server-2008
我想显示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
Run Code Online (Sandbox Code Playgroud)
表名 - CSPGI09_OVERSHIPMENT
我的公式:
-------------------------------------------------------
SPGI09_EARLY_OVER_T – (SPGI09_OVER_WK_EARLY_ADJUST_T)
-------------------------------------------------------
SPGI09_EARLY_OVER_T + SPGR99_LATE_CM_T + SPGR99_ON_TIME_Q
Run Code Online (Sandbox Code Playgroud)
我想用%显示结果,例如,66.57%
我正在使用SQL SERVER 2008
Dam*_*ver 14
假设所有这些列都是int,那么首先要解决的是将它们中的一个或多个转换为更好的数据类型 - int除法执行截断,因此任何小于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
Run Code Online (Sandbox Code Playgroud)
在这里,我已经多了一个数字,100.0这将强制计算结果用floats而不是ints完成.通过选择100,我也准备将其视为一个%.
我对你的包围感到有些困惑 - 我想我已经把它弄错了 - 但是你有一个括号围绕单个值,然后在其他地方你有同一级别的运算符(-和/)的混合,所以依赖在优先规则上定义首先应用哪个运算符.
| 归档时间: |
|
| 查看次数: |
123298 次 |
| 最近记录: |