查询带有时间戳的请求列表以同时使用

时间:2019-03-22 14:14:19

标签: sql-server-2008-r2 ssms

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

在上面的示例中,Rm03中的HP07从09:00-10:00进行了两次预订,Rm02中的Dell04从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。

0 个答案:

没有答案