求教ORACLE中的条件怎么写

不良数量=全检的处理数+抽检的抽检不合格数/抽检数*检验数

如果【检验方式】这个列的结果是“全检”,新增一列【不良数量】=【处理数量】的值

如果【检验方式】这个列的结果是“抽检”,新增一列【不良数量】=【抽检不合格数量】/【抽检数量】*【检验数量】的值

最后两个相加

最后想要的是 select 不良数量,项目号 from 这个库 根据项目号看每个项目的不良数量有多少

callie 发布于 2022-5-31 10:27
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-5-31 10:30(编辑于 2022-5-31 10:31)

select 

sum(case when 检验方式='全检' then 处理数量 else 0 end) as 全检数量,

sum(case when 检验方式='抽检' then 不合格数量/抽检数量*检验数量 else 0 end) as 抽检数量,

sum(case when 检验方式='全检' then 处理数量 else 0 end) +sum(case when 检验方式='抽检' then 不合格数量/抽检数量*检验数量 else 0 end) as 总不良数量,

项目号

 from 你的表

 group by 项目号

  • callie callie(提问者) 请问如果加个条件的话 检验方式为抽检 抽检数量不能为0怎么写
    2022-05-31 10:56 
  • CD20160914 CD20160914 回复 callie(提问者) 检验方式=\'抽检\' and 抽检数量!=0 then....
    2022-05-31 10:58 
  • CD20160914 CD20160914 回复 callie(提问者) 斜杠是论坛自己加的。你自己去掉。。
    2022-05-31 10:58 
  • callie callie(提问者) 回复 CD20160914 但是全检的话 我是可以让他等于0的 我可以写where 他的一个列 not in (select 列 from 表 where 方式=\'抽检\' and 数量=0)吗
    2022-05-31 11:03 
  • CD20160914 CD20160914 回复 callie(提问者) 重开一个帖子吧。和你上面问的又完全不一样。不然你这前提问的时候就考虑全面一些吧。。
    2022-05-31 11:03 
最佳回答
0
linbodingLv6中级互助
发布于2022-5-31 10:30

select case when 检验方式="全检" then   处理数量

            when 检验方式="抽检" then   公式   end as 不良数量,项目号 from 这个库

  • 3关注人数
  • 232浏览人数
  • 最后回答于:2022-5-31 10:31
    请选择关闭问题的原因
    确定 取消
    返回顶部