回答

收藏

更新上一行的开始和结束日期

技术问答 技术问答 520 人阅读 | 0 人回复 | 2023-09-12

该示例比仅根据新记录的开始日期更新先前的记录要复杂一些。我希望您能提供帮助。4 a& P/ P/ R/ ~9 L+ l
ID 1000(有很多ID,我们需要分区吗?)的初始起始日期为。
+ w. k* A/ a' ~( C9 n1 P: c该ID链接到另一个合同。因此,第一个合同的结束日期是第二个合同的开始日期。请注意,第二份合同可能会也可能不会过期。
9 N# L2 ^  ?: f7 X3 {+ r但是,该ID可能在第二个合同开始之前就已链接到另一个合同。因此,第二份合同无效。现在优先使用第三个合同,并且需要将第一个合同的结束日期更改为第三个合同的开始日期。第二份合同保持显示开始日期和结束日期相同。* k) {9 B: h. ]$ }
关于如何使用T-SQL实现此目标的任何想法?6 x5 o& d) i3 ^  K  |/ E
id       contract    Start Date   End Date
. ?! ^* _% }0 h/ Z/ [' B. U1000        1       2017/08/31   9999/12/31$ j& M' L7 T% [! _

& U2 \" p/ }) W/ |' Oid       contract    Start Date   End Date $ Z/ n& w# A/ n5 x: i0 Z/ R
1000        1       2017/08/31   2017/09/16 + t% J" Q- x# Y, v. U! x& I( A  b
1000        2       2017/09/16   9999/12/31# T  @3 v' z; W* w: |
id       contract    Start Date   End Date  
  f" a4 H2 J. w( A) [- @, C1000        1       2017/08/31   2017/09/14 : Y; R5 q# |" E3 S
1000        2       2017/09/16   2017/09/16 / U9 @5 ]0 X' D2 L( P/ ~
1000        3       2017/09/14   9999/12/31
0 e1 V2 {3 X9 p% Q先感谢您。
1 M' a/ W( H8 H, G1 @! l/ }亲切的问候D! e/ ?' _- O" z. F6 y
               
4 e# _7 B  O5 E1 w解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则