열의 최대 값을 찾고 다음 최대 값이 발견 될 때까지 동일한 값을 유지하려고합니다. 데이터와 SQL의 새로운 하나, 는 MS SQL 서버에있다동일한 열의 반복적 인 최대 값 확인 및 새로 발견 된 최대 값으로 바꾸기
알고리즘 것 기본적으로 MaxDelay에 대한 전역 변수를 유지하고 새 최대에 있음을 다시 작성 유지하거나 현재 행에 대해 하나의 '루프'두 가지를 실행하고 행에 대해 다른 수 -1 다음 프로젝트가 발견 될 때까지 -1.
SQL에서 재귀 쿼리와 기능을 혼합해서 사용해야합니까? Lag()을 시도했지만 Window 기능 제한으로 인해 Lag()의 Max()를 사용할 수 없습니다.
SELECT *,
(select max(v) from (VALUES([Delay],Lag([Delay], 1) OVER(ORDER BY [Milestones], [Project Name])))as value(v)) as [MaxDate]
FROM dbo.[Scenario Testing with Previous Row]
오류 : 누군가가 나에게 약간 포인터를 줄 수있는 경우
Msg 4108, Level 15, State 1, Line 2 Windowed functions can only appear in the SELECT or ORDER BY clauses.
감사하겠습니다.
Project Name Milestones Baseline Date Actual Date Delay Max Delay Worst Case Date
Project 1 MS_1 12/12/2016 15/12/2016 3 3 15/12/2016
Project 1 MS_2 14/12/2016 16/12/2016 2 3 17/12/2016
Project 1 MS_3 31/12/2016 09/01/2017 9 9 09/01/2017
Project 1 MS_4 11/01/2017 12/01/2017 1 9 20/01/2017
Project 1 MS_5 21/01/2017 24/01/2017 3 9 30/01/2017
Project 1 MS_6 01/02/2017 15/02/2017 14 14 15/02/2017
Project 1 MS_7 15/02/2017 16/02/2017 1 14 01/03/2017
Project 1 MS_8 26/02/2017 26/02/2017 0 14 12/03/2017
Project 1 MS_9 31/03/2017 31/03/2017 0 14 14/04/2017
질문을 편집하고 질문 *에서 질문 *을 텍스트 테이블로 제공하십시오. 각 행의 시작 부분에 4 개의 공백을 넣으면 데이터가 정렬됩니다. –