Мне нужно медленное свободное время, когда заданная длина задания возможна во все дни между 2 датами.
Входной сигнал:
Продолжительность задания минут (пример 120 мин)
Идентификатор пользователя
Первая возможная дата
Последняя возможная дата
Result:
List of all time time slows where is possible for him to do work, half our interval as in 07.00, 07.30, 08.00, 08.30, 09.00, 09.30 ....
After assignment end User need 30 min for trasnportation:
Table Users
--------------------------
UserId | Earliest | Latest
23259 | 7.30 | 15.30
1143 | 8.30 | 16.30
203 | 7.00 | 16300
Table Booked
--------------------------
UserId | EventStartDate | EventEndDate
23259 | 2018-11-09 07:30:00.000 | 2018-11-09 09:00:00.000
1143 | 2018-11-09 07:00:00.000 | 2018-11-09 16:00:00.000
203 | 2018-11-14 08:00:00.000 | 2018-11-15 09:00:00.000
203 | 2018-11-14 10:00:00.000 | 2018-11-15 12:00:00.000
203 | 2018-11-14 15:00:00.000 | 2018-11-15 15:30:00.000
203 | 2018-11-14 16:00:00.000 | 2018-11-15 16:30:00.000
Result temp table:
UserId | EventStartDate
23259 | 2018-11-09 10:00:00.000
23259 | 2018-11-09 10:30:00.000
23259 | 2018-11-09 11:00:00.000
23259 | 2018-11-09 11:30:00.000
23259 | 2018-11-09 12:00:00.000
23259 | 2018-11-09 12:30:00.000
23259 | 2018-11-09 13:00:00.000
23259 | 2018-11-09 13:30:00.000
23259 | 2018-11-10 07:30:00.000
.
.
.
23259 | 2018-11-15 13.30:00:00.000
23259 | 2018-11-09 10:00:00.000
23259 | 2018-11-09 10:30:00.000
23259 | 2018-11-09 11:00:00.000
23259 | 2018-11-09 11:30:00.000
23259 | 2018-11-09 12:00:00.000
23259 | 2018-11-09 12:30:00.000
23259 | 2018-11-09 13:00:00.000
23259 | 2018-11-09 13:30:00.000
23259 | 2018-11-10 07:30:00.000
.
.
.
23259 | 2018-11-15 13.30:00:00.000
1143 | 2018-11-10 09 10:00:00.000
1143 | 2018-11-10 10:30:00.000
1143 | 2018-11-10 11:00:00.000
1143 | 2018-11-10 11:30:00.000
1143 | 2018-11-10 12:00:00.000
1143 | 2018-11-10 12:30:00.000
1143 | 2018-11-10 13:00:00.000
1143 | 2018-11-10 13:30:00.000
1143 | 2018-11-11 07:30:00.000
.
,
,
1143 | 2018-11-15 13.30: 00: 00.000
Как это можно сделать с помощью SQL? (версия Microsoft SQL Azure)