gpt4 book ai didi

mysql - 将复杂逻辑转换为 MySQL CASE 语句

转载 作者:行者123 更新时间:2023-11-29 01:33:06 24 4
gpt4 key购买 nike

我正在将以下逻辑转换为 MySQL CASE 语句,我确信有一种优雅的方法可以做到这一点,但我认为我已经工作了太久,把自己弄糊涂了!

业务规则:

  • 程序有 programme_start 和 programme_end
  • 个人有 attend_start 和 attend_end

个人在一个时期内参加多个项目,他们只能有以下示例出勤跨度之一:

enter image description here

我需要做的是将每个 span 归类为一个类别类型,即类型 1 ... 9。但是我在构建可以互斥地涵盖每个 span 的 CASE 语句时遇到了问题。

有没有人做过这样的事情?如果没有,有人可以帮助解决它背后的逻辑吗?

提前致谢!

最佳答案

案例很简单..

在单个时间的情况下,时间只有 3 种方式可以分类 - 之前、期间和之后。涉及两次,所以 3 x 3 = 9 个结果。

关于一致性还有一些话要说,因为对于 _start,它是这样的:

on - after - before

而对于 _end 时间,它去

on - before - after

将它们组合使用(假设不考虑 NULL):

case when programme_start = attend_start then 0
when programme_start < attend_start then 3
else 6 end
+
case when programme_end = attend_end then 1
when programme_end > attend_end then 2
else 3 end
AS Category

关于mysql - 将复杂逻辑转换为 MySQL CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5368294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com