如果获得包含资产预订的预订表。预约可以存在一段时间,可能跨越多天。
我希望将这些预订合并一段时间以获得:
1 - 适应预订所需资产数量的概述:n
;
2 - 结果表,其中包含行r
,其中r
< = n
这听起来很奇怪,但让我通过一个例子来解释。 让我们考虑这三个保留(为了演示而简化):
res1 2015-04-20 14:00:00 2015-04-21 11:00:00
res2 2015-04-21 13:00:00 2015-04-21 15:00:00
res3 2015-04-21 11:00:00 2015-04-21 14:00:00
如果我们将此显示在 2015-04-21 9:00 到 2015-04-21 15:00 的图表中。所以预订1被修剪,结果我们得到了这个,X表示预订。
9 10 11 12 13 14
res1 X X - - - -
res2 - - - - X X
res3 - - X X X -
如果我们作为人类查看此表,我们会将预约1和3组合在一行(或资产)上。第二行只包含预留2(并且是资产编号2)。
这段时间n = 2
。
我想要生成的结果表如下,添加一个包含标识符的列。
res1 2015-04-20 14:00:00 2015-04-21 11:00:00 1
res2 2015-04-21 13:00:00 2015-04-21 15:00:00 2
res3 2015-04-21 11:00:00 2015-04-21 14:00:00 1
为什么我想要这两个结果?好的第一个结果(n
)我可以看到是否可以在一段时间内提供新的预订,从而给出在此期间可用的资产数量。其次,使用生成的表格,您可以构建一个包含组合预留的机架,从而优化资产的使用。
优选地,两个结果将由SQL查询(我可以存储在存储过程中)产生。但是当然,一些逻辑也可以在PHP环境中。