이 예제는 새 레코드의 시작 날짜를 기준으로 이전 레코드를 업데이트하는 것보다 조금 까다 롭습니다. 네가 도울 수 있기를 바랐다.이전 행의 시작 날짜와 끝 날짜 업데이트
ID 1000 (ID가 많고 파티션이 필요합니까?) 초기 시작 날짜가 있습니다.
ID가 다른 계약서에 연결됩니다. 따라서 첫 번째 계약의 종료 날짜는 두 번째 계약의 시작 날짜입니다. 두 번째 계약은 미래의 날짜 일 수도 있고 아닐 수도 있습니다.
그러나 두 번째 계약이 시작되기 전에 ID가 다른 계약서에 연결될 수 있습니다. 그래서 두 번째 계약은 무효가됩니다. 이제 3 차 계약이 우선 적용되고 첫 번째 계약의 종료일을 3 차 계약의 시작 날짜로 변경해야합니다. 두 번째 계약에는 시작일과 종료일이 동일하게 유지됩니다.
T-SQL을 사용하여이를 달성하는 방법에 대한 아이디어가 있으십니까?
id contract Start Date End Date
1000 1 2017/08/31 9999/12/31
id contract Start Date End Date
1000 1 2017/08/31 2017/09/16
1000 2 2017/09/16 9999/12/31
id contract Start Date End Date
1000 1 2017/08/31 2017/09/14
1000 2 2017/09/16 2017/09/16
1000 3 2017/09/14 9999/12/31
감사합니다.
종류는 D
SQL 서버의 버전은 무엇? – scsimon
안녕하세요, Scsimon, SQL 2014입니다. – user3497385