为什么永远只有NG,满足OK条件还是显示NG

case when 

(SUM

(CASE WHEN 

(case when (CASE WHEN f_min<f_stress_min THEN 'NG' ELSE 'OK' END)='NG' 

or (CASE WHEN f_k1<f_stress_B10 THEN 'NG' ELSE 'OK' END)='NG' 

or (CASE WHEN f_k632<f_stress_63 THEN 'NG' ELSE 'OK' END)='NG' 

THEN 'NG' ELSE 'OK' END)



='OK' 

THEN 0 ELSE 1 END)

)>0 then 'NG' 

else 'OK' 

end f_result


chenxf3 发布于 2021-1-25 15:53
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
烟尘Lv6高级互助
发布于2021-1-25 16:04(编辑于 2021-1-25 16:17)

写的太复杂了

看代码,实际上只要记录中有一行的3个判断条件有一个成立就会显示NG

比如表中10条记录,只要有1条记录的

f_min<f_stress_min or f_k1<f_stress_B10 or f_k632<f_stress_63

成立,结果就是NG

简写一下就看的清晰一些

你的代码相当于:

case when 
	SUM(
		CASE WHEN f_min<f_stress_min or f_k1<f_stress_B10 or f_k632<f_stress_63 
		THEN 1 ELSE 0 END
	)>0 then 'NG' 
else 'OK' 
end f_result

所以要出现OK的结果,就必须全部记录都要满足条件

f_min>=f_stress_min and f_k1>=f_stress_B10 and f_k632>=f_stress_63

才可以。

请先检查一下表中记录是不是全部符合OK条件

  • 2关注人数
  • 358浏览人数
  • 最后回答于:2021-1-25 16:17
    请选择关闭问题的原因
    确定 取消
    返回顶部