我正在使用SQL Server Management Studio 2008进行查询创建.Reporting Services 2008用于创建报告.
几个星期以来,我一直试图解决这个问题,而且我遇到了一堵砖墙.我希望有人能够提出解决方案,因为现在我的大脑变得糊里糊涂了.
我目前正在开发一个SQL查询,它将数据提供给Reporting Services报告.该报告的目的是显示我们所在县周围地区急救员的可用率百分比.我们的想法是,在我们的20个地点中,每个地点应该只有一名急救员提供保险.
除了在一个地点的第一个助手在每个封面期间的开始和结束时重叠他们的封面之外,这一切都很好.
封面重叠示例:
| Location | start_date | end_date | +----------+---------------------+---------------------+ | Wick | 22/06/2015 09:00:00 | 22/06/2015 19:00:00 | | Wick | 22/06/2015 18:30:00 | 23/06/2015 09:00:00 | | Wick | 23/06/2015 09:00:00 | 23/06/2015 18:30:00 | | Wick | 23/06/2015 18:00:00 | 24/06/2015 09:00:00 | +----------+---------------------+---------------------+
在一个完美的世界中,他们设置的数据库不允许他们这样做,但它是一个外部开发的数据库,不允许我们对其进行更改.我们也不允许创建函数,存储过程,计数表等...
查询本身应该返回每个位置有急救保护的分钟数,然后分解为一天中的几小时.封面上的任何重叠不应该最终增加额外的封面,应该合并.一个人可以一次打开,如果他们重叠,那么它应该只算作一个人的掩护.
示例输出:
+----------+---------------------+---------------------+----------+--------------+--------+-------+------+----------+ | Location | fromDt | toDt | TimeDiff | Availability | DayN | DayNo | Hour | DayCount | …