SQL问题

有一张表存开始时间结束时间(肯定不含节假日),然后比如结束时间-开始时间>三天就超期,但是考虑周末和节假日,然后就维护了一张码表,存节假日的时间

我理解的规则是

开始时间+1  去对比 码表 的时间如果码表有就+1对比直到没有,这个时间为开始时间,然后计算差值,看是否超期,怎么写呢我不会了

Srafy 发布于 2021-8-17 11:48
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
杨朝健Lv5中级互助
发布于2021-8-17 11:53

select

case when 结束时间-开始时间-(select count(1) from 节假日码表 where 节假日时间 between t.开始时间 and t.结束时间)>3 then '超期' else '不超期' end as flag

from 表 t

  • Sucon Sucon 学习了,SQL居然还有在select 里 select 这样的写法
    2021-08-17 13:42 
  • Srafy Srafy(提问者) 我被我之前的思路限制了,您这个方法太赞了
    2021-08-17 13:59 
  • 2关注人数
  • 387浏览人数
  • 最后回答于:2021-8-17 11:53
    请选择关闭问题的原因
    确定 取消
    返回顶部