Em chào mọi người, em có một vấn đề về SQL muốn tham khảo ý kiến từ các Anh/Chị/Bạn.
Đầu tiên, em có 1 bảng lưu thông tin về OT của nhân viên với cấu trúc như bên dưới.
id | id_staff | working_date | start_time | end_time |
---|---|---|---|---|
1 | 1 | 2022-04-01 | 21:00:00 | 23:00:00 |
2 | 1 | 2022-04-02 | 04:00:00 | 08:00:00 |
3 | 1 | 2022-04-03 | 20:00:00 | 01:00:00 |
Tiếp theo, em có 1 bảng lưu thông tin về quy định Ca OT ( gồm Ca ngày , Ca đêm )
id | shift_name | start_time | end_time |
---|---|---|---|
1 | Day shift | 06:00:00 | 22:00:00 |
2 | Night shift | 22:00:00 | 06:00:00 |
Em muốn chia dữ liệu của các record trong bảng OT thành nhiều record mới thoả mãn điều kiện start_time -> end_time không được vượt quá range của Ca OT. Kết quả thể hiện như bên dưới:
id | id_staff | working_date | start_time | end_time |
---|---|---|---|---|
1 | 1 | 2022-04-01 | 21:00:00 | 22:00:00 |
2 | 1 | 2022-04-01 | 22:00:00 | 23:00:00 |
3 | 1 | 2022-04-02 | 04:00:00 | 06:00:00 |
4 | 1 | 2022-04-02 | 06:00:00 | 08:00:00 |
5 | 1 | 2022-04-03 | 20:00:00 | 00:00:00 |
6 | 1 | 2022-04-03 | 00:00:00 | 01:00:00 |
Trên google có nhiều tài liệu tương tự, tuy nhiên lại ràng buộc đơn giá trị, vấn đề của em đang là dữ liệu ràng buộc lại nằm ở bảng khác.
Mong mọi người giúp đỡ,em cảm ơn mọi người nhiều ạ