1:前言

最近开发遇到一个问题,就是我求任务完成率=完成数量/计划数量*100查询到,由于计划任务数量和完成任务数量都是整数,所以导致相除的时候,结果都是 0

1、我写的SQL:

SELECT SYSDATE                                                             AS 更新时间,'60'                                                                AS 密级,统计日期,创建时间,生产类型,计划数量,完成数量,DECODE(COALESCE(计划数量,0), 0, 0, ROUND(完成数量 / 计划数量, 2) * 100) AS 完成率
FROM (SELECT TO_CHAR(DATA_TIME, 'yyyy-mm')            AS 统计日期,STAT_TIME                                AS 创建时间,PROD_TYPE                                AS 生产类型,(SELECT COUNT(WORK_ORDER_ID)FROM BRAIN.DWS_WORK_ORDER_INFOGROUP BY TO_CHAR(DATA_TIME, 'yyyy-mm')) AS 计划数量,(SELECT COUNT(WORK_ORDER_ID)FROM BRAIN.DWS_WORK_ORDER_INFOWHERE IF_COMP = '是'GROUP BY TO_CHAR(DATA_TIME, 'yyyy-mm')) AS 完成数量FROM BRAIN.DWS_WORK_ORDER_INFO)

执行结果:

明明7/8 等于 0.875,可结果确实0

2:结果思路

select  7/8 AS 完成率  from dual;

完成率:俩个Integer 类型相除肯定会是整数

后来我修改了一下,把Integer 类型转成 flaot 类型,

3:原本的SQL 修改如下:

CAST(COUNT(WORK_ORDER_ID) AS float)
SELECT SYSDATE                                                             AS 更新时间,'60'                                                                AS 密级,统计日期,创建时间,生产类型,计划数量,完成数量,DECODE(COALESCE(计划数量,0), 0, 0, ROUND(完成数量 / 计划数量, 2) * 100) AS 完成率
FROM (SELECT TO_CHAR(DATA_TIME, 'yyyy-mm')            AS 统计日期,STAT_TIME                                AS 创建时间,PROD_TYPE                                AS 生产类型,(SELECT CAST(COUNT(WORK_ORDER_ID) AS float)FROM BRAIN.DWS_WORK_ORDER_INFOGROUP BY TO_CHAR(DATA_TIME, 'yyyy-mm')) AS 计划数量,(SELECT CAST(COUNT(WORK_ORDER_ID) AS float)FROM BRAIN.DWS_WORK_ORDER_INFOWHERE IF_COMP = '是'GROUP BY TO_CHAR(DATA_TIME, 'yyyy-mm')) AS 完成数量FROM BRAIN.DWS_WORK_ORDER_INFO)

结果:

如何解决 Oracle数据库 俩个整数相除结果为0 的问题相关推荐

  1. oracle数据库path,利用Path环境变量解决oracle数据库和owb工具不兼容问题!

    利用Path环境变量解决oracle数据库和owb工具不兼容问题! 2009年5月4日 现象: 安装了oracle9i和owb10后往往会出现各自工具不能启动的现象,比如安装完oracle9i后再安装 ...

  2. oracle 游标 904,如何解决Oracle数据库游标连接超出问题

    如何解决Oracle数据库游标连接超出问题 发布时间:2020-07-21 10:57:35 来源:亿速云 阅读:103 作者:小猪 这篇文章主要讲解了如何解决Oracle数据库游标连接超出问题,内容 ...

  3. oracle中12560,如何解决Oracle数据库ORA-12560错误问题

    如何解决Oracle数据库ORA-12560错误问题 发布时间:2020-07-28 10:16:24 来源:亿速云 阅读:77 作者:小猪 栏目:数据库 这篇文章主要为大家展示了如何解决Oracle ...

  4. 忘记oracle管理员密码了,解决oracle数据库忘记系统管理员密码

    解决oracle数据库忘记系统管理员密码 下面我分两步讲解这个问题,1)Oracle数据库的三种认证机制:2)oracle数据库忘记系统管理员密码怎么办? 1.Oracle数据库的三种认证机制 a)操 ...

  5. oracle扩展归档空间大小,解决Oracle数据库归档日志占满磁盘空间问题

    1.常用命令 show parameter log_archive_dest; sql> archive log list; sql> select * from V$FLASH_RECO ...

  6. Oracle数据库的并行查询,解决Oracle数据库并行查询出错的方法

    当我们在使用Oracle数据库的时候会发现Oracle数据库并行查询出错这一问题,那么你知道如何解决Oracle数据库并行查询出错吗?下面就是解决Oracle数据库并行查询出错的方法介绍. Oracl ...

  7. 不停应用重启oracle数据库,此类情况下解决Oracle数据库重启的四种方案

    原题:Oracle数据库重启(内存参数numperm_global相关) 故障描述 Oracle数据库发生重启. 系统环境 AIX 6100-07-05-1228 Oracle 11g 故障分析 首先 ...

  8. oracle 行级死锁_解决Oracle数据库死锁

    介绍 本文我们尝试总结在多个用户并发情况下,如何识别和解决删除操作期间发生的死锁问题,在开始之前,我们先简单描述一下什么是死锁以及什么东西会导致死锁. 死锁 在任何数据库中发生死锁都是不愉快的,即使是 ...

  9. 并发访问oracle数据库的数据死锁分析和解决措施,解决Oracle数据库死锁

    [IT168 技术文档] 介绍 本文我们尝试总结在多个用户并发情况下,如何识别和解决删除操作期间发生的死锁问题,在开始之前,我们先简单描述一下什么是死锁以及什么东西会导致死锁. 死锁 在任何数据库中发 ...

最新文章

  1. PHP开发中,让var_dump调试函数输出更美观 ^_^#
  2. 震撼三观:从细胞到宇宙
  3. Matlab中数组元素引用——三种方法
  4. windows下的sysprep
  5. JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归
  6. 触发键盘_雷蛇这款光轴机械键盘开箱评测,光速触发,颜值爆表
  7. 批处理管理文件以及文件夹
  8. C语言 链式栈和顺序栈的实现
  9. python统计句子中单词个数_【python统计单词数量】作文写作问答 - 归教作文网
  10. 开始开发HoloLens应用吧 Start Developing HoloLens Apps Today
  11. @excel 注解_SpringBoot中关于Excel的导入和导出
  12. 最新python爬取喜马拉雅音频_Python爬虫实战案例之爬取喜马拉雅音频数据详解
  13. FPGA、MCU(stm3251)驱动VGA显示器_电阻分压法硬件设计_VGA电阻网络分压
  14. 实战智能推荐系统(12)-- 标签推荐系统
  15. CSS:使用媒体查询进行网页元素的缩放
  16. 个人陈述 计算机专业,研究生个人陈述范例,计算机专业
  17. 【DirectX学习笔记】01_D3D初始化准备-基本绘图概念
  18. 这个对老爸老妈有好处
  19. 好评率超高的9个公众号,值得收藏
  20. 2021最新! Springboot 2.X集成ElasticSearch 7.6.2(入门版)

热门文章

  1. 变量(自动变量、静态变量、寄存器变量、外部变量)与C的内存分配malloc/free、calloc/recalloc
  2. 2021年CKA考试真题(三)
  3. 爬虫:豆瓣电影top250
  4. 民安智库(第三方发展指数评估)谈中国智能家居市场发展研究
  5. [ESP32]学习笔记01
  6. ObjectArx块操作封装
  7. 无线AP和无线路由器的区别
  8. 美国国家NCDC气候数据处理-提取中国各省最高气温、最低气温、降雨量信息。
  9. Activiti初学者教程
  10. 西电C语言程序设计实验之位图图像文件缩放