【发布时间】:2025-12-04 13:15:01
【问题描述】:
我已经获得了如下所示的数据库数据(有关日期的其他信息:包括 valid_from 中的日期,不包括 valid_to 中的日期)
| obj_number | status | valid_from | valid_to |
|---|---|---|---|
| A1001 | active | 01.01.2018 | 01.01.2019 |
| A1001 | pending | 01.01.2019 | 31.03.2019 |
| A1001 | pending | 31.03.2019 | 30.06.2019 |
| A1001 | pending | 30.06.2019 | 31.12.2019 |
| A1001 | active | 31.12.2019 | 31.12.2020 |
| A1001 | active | 31.12.2020 |
当状态发生变化时,我必须合并数据,但 valid_from 应该来自最旧的记录,valid_to 应该来自最新的记录。您可以在上面看到的数据的结果应该像您在下面看到的那样
| obj_number | status | valid_from | valid_to |
|---|---|---|---|
| A1001 | active | 01.01.2018 | 01.01.2019 |
| A1001 | pending | 01.01.2019 | 31.12.2019 |
| A1001 | active | 31.12.2019 |
如何编写一个sql查询来实现呢?
提前致谢
【问题讨论】: