问题描述
我有一组需要处理的具有不同场景的数据,并且正在努力为此找到正确的组合/解决方案(函数/循环/ CTE /游标/循环等)
基本上,首先,我要处理以下2种情况:
ID AssessDate Start Week Activity_Type
== ========== ========== =============
5 2019-10-09 2019-10-21 Act1
5 2019-10-22 2019-10-21 Act1
5 2019-11-05 2019-11-04 Act2 <<<<< 1
5 2019-11-07 2019-11-04 Act2
5 2019-11-18 2019-11-04 Act2
5 2019-11-20 null null <<<<< 2
- 活动更改为下一个活动的地方-Act2-(第1号)我需要返回评估日期-1 (2019-11-04)但针对先前的活动(Act1),因为它是原始的开始日期,所以 返回数据如下所示:
ID Date Start Week Activity_Type
== ========== ========== =============
5 2019-11-04 2019-10-21 Act1
- 删除活动的地方,我需要返回评估日期-1(2019-11-19),但从该周开始 上一行,因此需要为Act2返回以下数据
ID Date Start Week Activity_Type
== ========== ========== =============
5 2019-11-19 2019-11-04 Act2
以ID = 5退货
ID Date Start Week Activity_Type
== ========== ========== =============
5 2019-11-04 2019-10-21 Act1
5 2019-11-19 2019-11-04 Act2
然后要处理的第三种情况是:
ID AssessDate Start Week Activity_Type
== ========== ========== =============
6 2019-03-08 2019-03-04 Act5
6 2019-10-18 null null <<<<<< 3
6 2020-03-13 2020-03-16 Act6
6 2020-04-23 null null <<<<<< 4
返回下面的ID = 6
ID Date Start Week Activity_Type
== ========== ========== =============
6 2019-10-17 2019-03-04 Act5
6 2020-04-22 2020-03-16 Act6
-
活动为空的情况下,按评估日期的顺序返回评估日期-1与上一行 开始周和活动类型如上所述。
-
与3相同,但对于Act6
我尝试了各种代码排列,试图处理每一行并合并结果,然后返回值,但是虽然其中一些有效,但其他位却没有,然后当我修复它破坏了第一个值时,最初还可以。
关于可行解决方案的任何指针都将是很棒的。我一直在看游标,但我一直在阅读它们,但速度太慢,尽管我以前曾经使用过它们,但认为可能会有更好的解决方案。
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)