0

分割された間隔と重複する間隔の数を取得する必要があります。

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の分割は、13:00から14:00の間に間隔4と交差することによって発生します。

sql-serverはms-sql2008です。

事前に助けてくれてありがとう!

4

1 に答える 1

0

あなたが正しくやろうとしていることを理解していれば、期待される結果は

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: 50%

13:00-14:00が2回使われているので?

于 2010-03-26T20:23:09.940 に答える