如何使用Sql Server整合行与空白?

时间:2015-12-22 13:06:02

标签: sql sql-server

我有一个表格,其中包含开始日期(和时间),结束日期(和时间)值和标识符。

例如我可以有这样的行(我遗漏了breivety的日期值):

  • id:5,开始:00:00,结束:12:00,价值:50
  • id:6,开始:00:00,结束:08:00,价值:60
  • id:7,开始:08:00,结束:20:00,价值:70
  • id:8,开始:22:00,结束:23:00,价值:80
  • id:9,开始:00:00,结束:24:00,价值:90
  • id:10,start:05:00,end:07:00,value:100

然后,我想查询最佳(较小的id 更好)匹配,这些匹配的值在00:00到24:00之间且不重叠其他

所以它会导致:

  • 开始:00:00,结束:12:00,价值:50(来自id 5)
  • 开始时间:12:00,结束时间:20:00,价值:70(来自身份证号码7,但裁剪不重叠前一场比赛)
  • 开始:22:00,结束:23:00,价值:80(来自id 8)
  • 开始时间:20:00,结束时间:22:00,价值:90(来自ID 9,但裁剪不重叠之前的匹配)
  • 开始:23:00,结束时间:24:00,价值:90(再次从id 9开始,但裁剪不重叠以前的比赛)
  • 此外,已有完整日期时间范围的值。

没有最小的时间单位(比如一小时),所以我无法生成一个"计数表"从00:00到24:00的值,并检索每个时间单位的最佳匹配(如00:00 - 01:00)。

无法保证有足够的值来填充日期时间范围。

我怎么能实现这个目标?

0 个答案:

没有答案