我有一个表记录了某人id, ,start_date 和end_date 日期,另一个表记录了对应的id人,date 未出席的当月的月末日期,比如1月31日,如果2个月没出席,就有2条数据,我想等得到这个人出席对的时间段,返回要求是一段区间是一行记录,返回 id,区间1-区间2,有3个月没出席的话,返回4条区间,前提是数据配置都正常的情况下
难点在于每个人都未出席的月份时,都会返回m个月+1的数据,以及需要考虑有的人没缺席,缺席一个月,缺席多个月的情况,不能用存储过程
源数据
表a, id, start_date, end_date
表b, id, monthend_date
表a id start_date end_date
1 2021-01-01 2021-12-15
2 2021-01-01 2021-12-15
3 2021-01-01 2021-12-15
表b id monthend_date
1 2021-03-31
2 2021-03-31
2 2021-05-31
备注 这个表的monthend_date 只会出现月末的最后一天日期,来代表这个月都是未出席的
我想要达到的结果
返回
id qujian1 qujian2
1 2021-01-01 2021-02-28
1 2021-04-01 2021-12-15
2 2021-01-01 2021-02-28
2 2021-04-01 2021-04-30
2 2021-06-01 2021-12-15
3 2021-01-01 2021-12-15