SQL Server分隔重叠日期和街道号码

时间:2018-02-02 14:24:01

标签: sql sql-server database

我的桌子上有多个街道名称,街道号范围和日期范围。问题是,不仅在日期中存在一些重叠,而且在街道数字中也存在一些重叠,我需要将其拆分。我看到了一个关于如何通过日期(SQL Server separate overlapping dates)拆分它的问题,但我的问题似乎略有不同,但更为复杂。

例如,这就是它现在的样子:

StartDate   EndDate     StreetName      StreetNumberLow     StreetNumberHigh        Value 
2017/1/1    2017/3/31   MyStreet        5                   7                       1729 
2017/4/1    2020/12/31  MyStreet        5                   7                       1763
2017/1/1    2017/12/31  MyStreet        1                   11                      1729
2018/1/1    2020/12/31  MyStreet        1                   11                      18128

应该如何看待:

StartDate   EndDate     StreetName      StreetNumberLow     StreetNumberHigh        Value
2017/1/1    2017/3/31   MyStreet        5                   7                       1729
2017/4/1    2020/12/31  MyStreet        5                   7                       1763
2017/1/1    2017/12/31  MyStreet        1                   4                       1729
2017/1/1    2017/12/31  MyStreet        8                   11                      1729
2018/1/1    2020/12/31  MyStreet        1                   4                       18128
2018/1/1    2020/12/31  MyStreet        8                   11                      18128

正如您所看到的,街道号和日期有两个重叠,所以我需要拆分它。有人可以帮我找到解决方案吗?谢谢

编辑:另一个案例:如果我从1月到6月的街道编号范围为1 - 11,价值为100,街道编号范围为5 - 7,从3月到12月,价值为200,那么结果应如下:街道数字范围1 - 11从1月到2月,价值100,街道数字范围1 - 4,价值100,5 - 7,价值200和8 - 11,价值100从3月到6月,街道数字范围5 - 7从7月到12月,价值200

0 个答案:

没有答案