мне нужно получить разделенные интервалы и количество перекрывающихся интервалов, например
basedata:
interval A: startTime 08:00, endTime 12:00
interval B: startTime 09:00, endTime 12:00
interval C: startTime 12:00, endTime 16:00
interval D: startTime 13:00, endTime 14:00
теперь у меня есть отдельный интервал с 10:00 до 15:00, и я должен определить, какие интервалы сначала пересекаются. результат должен быть примерно таким:
1: 10:00 - 12:00 ( intersecting with interval A )
2: 10:00 - 12:00 ( intersecting with interval B )
3: 12:00 - 15:00 ( intersecting with interval C )
4: 13:00 - 14:00 ( intersecting with interval D )
эта часть работает нормально, проблема вызывает следующее:
Мне нужно какое-то взвешивание для параллельных интервалов. это также означает, что может случиться так, что интервал пересечения должен быть разделен n раз, если он (частично) пересекается другим.
в верхнем примере ожидаемый результат будет:
1: 10:00 - 12:00 -> weightage: 50%
2: 10:00 - 12:00 -> weightage: 50%
3.1: 12:00 - 13:00 -> weightage: 1oo%
3.2: 13:00 - 14:00 -> weightage: 50%
3.3: 14:00 - 15:00 -> weightage: 50%
4: 13:00 - 14:00 -< weightage: 100%
разбиение интервала 3 вызвано пересечением с интервалом 4 между 13:00 и 14:00.
sql-сервер - ms-sql 2008.
Заранее спасибо за помощь!