2017-11-27 1 views
1

캠 누군가 도와주세요? 그런 우리를 :다음 시퀀스 값에 값 추가

나는 150 (ID-2, column_1)에 값 10 (ID-1, Column_2)를 추가하려면 10 + 150 = 160

그 과정은 모든 다음 행에 대해 반복해야합니다. = 135

(130)는 SQL SELECT 문을 사용 5+ 될 것

그래서 다음, 누군가가 나 그 코드를 작성하는 데 도움이 될 수 있습니다?

감사합니다. SQL 서버에서

enter image description here

+6

태그 사용중인 데이터베이스에 귀하의 질문에 가입 할 수 있습니다. MySQL과 SQL Server는 동일하지 않습니다. –

답변

3

, 당신은 lag()을 사용합니다 :

select col1 + lag(col2, 1, 0) over (order by id) as col1, col2 
from t; 

이 첫 번째 값을 변경하지 않는 것으로 가정합니다.

+0

PostgreSQL에서도 작동합니다. – tonypdmtr

1

SQL Server의 경우 내부가

Create table #tmp(ID int,column_1 int, column_2 int) 

    insert into #tmp values(1,100,10) 
    insert into #tmp values(2,150,5) 
    insert into #tmp values(3,130,20) 

    select * from #tmp 

    select t1.column_2+t2.column_1 from #tmp t1 
    INNER JOIN #tmp t2 on t1.Id=t2.Id-1 

    DROP table #tmp