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, которые запрашивают одно и то же оборудование.