【发布时间】:2018-11-17 04:30:05
【问题描述】:
我想做的是扩展RxEndDates,直到处方中不再有重叠。并且新的扩展也不重叠。
上下文:如果 Amy 每天服用 Humera 并在她当前的处方用完之前补加药,则将第 2 个处方的 DaySupply 添加到第一个处方中。
sample data:
User Drug RxStartDate DaySupply RxEndDate
Amy Humera 2/12/2017 7 2/18/2017
Amy Humera 2/28/2017 5 3/4/2017 <--Overlap with below
Amy Humera 3/3/2017 5 3/7/2017 <--Overlap with above, need to combine
Amy Humera 3/8/2017 2 3/9/2017
Amy Humera 3/10/2017 7 3/16/2017
Amy Humera 3/17/2017 30 4/15/2017 <--Overlap with all below, combine
Amy Humera 3/22/2017 2 3/23/2017 <--Overlap
Amy Humera 3/24/2017 2 3/25/2017 <--Overlap
Amy Humera 3/31/2017 3 4/2/2017 <--Overlap
Amy Humera 4/7/2017 5 4/11/2017 <--Overlap
Amy Humera 4/13/2017 30 5/12/2017 <--Overlap
所以我们合并后得到
User Drug RxStartDate DaySupply RxEndDate
Amy Humera 2/12/2017 7 2/18/2017
Amy Humera 2/28/2017 10 3/9/2017 <-- Combined from above, new overlap
Amy Humera 3/8/2017 2 3/9/2017 <-- Now this overlaps with above
Amy Humera 3/10/2017 7 3/16/2017
Amy Humera 3/17/2017 72 5/27/2017
User Drug RxStartDate DaySupply RxEndDate
Amy Humera 2/12/2017 7 2/18/2017
Amy Humera 2/28/2017 12 3/11/2017 <-- Combined, again, new overlap
Amy Humera 3/10/2017 7 3/16/2017 <-- Now this overlaps with above
Amy Humera 3/17/2017 72 5/27/2017
User Drug RxStartDate DaySupply RxEndDate
Amy Humera 2/12/2017 7 2/18/2017
Amy Humera 2/28/2017 19 3/18/2017 <-- Combined, again, new overlap
Amy Humera 3/17/2017 72 5/27/2017 <-- Now this overlaps with above
User Drug RxStartDate DaySupply RxEndDate
Amy Humera 2/12/2017 7 2/18/2017
Amy Humera 2/28/2017 91 5/29/2017
There is no more overlap…finished!
有没有办法在循环中自动执行此操作...有什么想法吗?
【问题讨论】:
-
您使用的是什么版本的 SQL Server?
-
@rosie chi:你不觉得这个问题应该是merged和your other one吗?我一直在测试这些解决方案,但在我看来,只有递归才能完成这项工作。在那篇文章中,我已经展示了一个实现,因此其他人在编写相同的代码之前也应该看到它。
-
@DávidLaczkó:我认为这是个好主意!我已阅读您指出的“合并”链接,但看起来我无法进行合并,只有版主。您是否有可能在此处发布该帖子中的答案?
-
@aduguid:我想这很重要...我使用的是 SQL Server 2008。谢谢!
-
好的,我在这里复制了我的答案。还将另一个问题标记为已关闭(此后没有添加任何内容)。
标签: sql sql-server loops