SQL Получить возможный интервал - PullRequest
0 голосов
/ 09 ноября 2018

Мне нужно медленное свободное время, когда заданная длина задания возможна во все дни между 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...