ORCALEsql解读

COUNT(CASE WHEN C.需求时间 <= A.完成时间 THEN C.需求时间 ELSE NULL END) AS 按期,
COUNT(CASE WHEN C.需求时间 <= A.完成时间 THEN NULL ELSE C.需求时间 END) AS 超期,

count case when 我能理解,但是他这里边嵌套的是啥意思?第一句需求时间小于等于完成时间不应该是超期吗?

求大神帮忙解读一下

用户kWEye3931 发布于 2020-11-24 10:55 (编辑于 2020-11-24 10:56)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
ColdmanLv6高级互助
发布于2021-6-11 17:31

看你这个SQL应该是统计超期的数量和按期的数量,但是根据正常业务逻辑来说两个写反了,把AS按期和AS超期换一下应该是对的,具体看你的业务

最佳回答
0
张洪威Lv6高级互助
发布于2020-11-24 10:58

这哪是sql问题啊,这个是你业务逻辑的问题。

你找个需求时间和完成时间的数据跑一下这个sql,时间是按期跑出来超期那说明sql写错了。

最佳回答
0
12345677Lv5见习互助
发布于2020-11-27 11:32

第一个 按期的意思是 如果 C.需求时间<=A.的完成时间的话 拿就是C.的需求时间 否则 是空值

第二个 超期的意思是 如果 C.需求时间<=A.的完成时间的话  拿就是空值,否则是需求时间 


这明细写的有问题 都是判断C.需求时间<=A.的完成时间的话  一条就可以 

看你的要超期的话就是 


COUNT(CASE WHEN C.需求时间 <= A.完成时间 THEN 超期 ELSE (条件自己写) END) AS (名称),

最佳回答
0
liu.yangLv2初级互助
发布于2021-6-11 17:37(编辑于 2021-6-11 18:09)

换一种方式解读

完成时间  是 预定的截至时间  花呗还款截至日期

需求时间 是 实际的完成时间 你实际还款的时间

最佳回答
0
krystal033Lv7高级互助
发布于2021-6-15 08:08

建议你先case when 判断 然后再整句sql外面嵌套一层count 这样不容易错

  • 6关注人数
  • 483浏览人数
  • 最后回答于:2021-6-15 08:08
    请选择关闭问题的原因
    确定 取消
    返回顶部