Запрос списка запросов с метками времени для одновременного использования - PullRequest
0 голосов
/ 22 марта 2019

BLUF:

-Я использую 2008 R2, и у меня нет доступа к split_string.

-Структура данных столбца со списком оборудования - беспорядок, но неизбежен. Это внешняя сущность, и я не могу контролировать, как они хранят данные.


Я пытаюсь запросить таблицу, чтобы узнать, запрашиваются ли определенные компьютеры одновременно. Каждая строка представляет собой запрос пользователя на использование определенных компьютеров. База данных представляет собой одну таблицу, структурированную так:

ReqID | Start            | End              | Equipment
01    | 02/17/2019 09:00 | 02/17/2019 10:00 | [Rm01] Dell01, Dell02 [Rm02] Dell04, HP04 [Rm03] Dell07, HP07
02    | 02/17/2019 07:00 | 02/17/2019 13:00 | [Rm01] HP01 [Rm02] Dell04 [Rm03] HP07, HP08
03    | 02/17/2019 07:00 | 02/17/2019 23:30 | [Rm02] Dell04, Dell05, Dell06

В приведенном выше примере HP07 в Rm03 забронировано дважды с 09: 00-10: 00, а Dell04 в Rm02 забронировано три раза с 09: 00-10: 00, а затем дважды забронировано с 07: 00-09: 00 и 10: 00-13: 00.

В результирующем наборе будут зарезервированы номер и компьютер, забронированные дважды / трижды, а также запрос ReqID. В качестве бонуса, если он может тянуть периоды времени, они перебронированы, это было бы чрезвычайно полезно. Например:

Equipment   | ReqIDs     | OverbookStart    | OverbookEnd
Rm03 HP07   | 01, 02     | 02/17/2019 09:00 | 02/17/2019 10:00
Rm02 Dell04 | 01, 02, 03 | 02/17/2019 07:00 | 02/17/2019 13:00

Неважно, забронированы ли они дважды или трижды, если только это не облегчит решение. Мне просто нужно знать перекрывающиеся ReqID, которые запрашивают одно и то же оборудование.

...