Member 13483961 Ответов: 1

Добавьте только значения предыдущей и текущей строк


Имя таблицы-сотрудник

EmpNo EmpName Зарплата
1 а 2000
2 B 1000
3 C 3000
4 D 2000
5 е 5000

Мне нужно получить еще один столбец, добавив зарплату предыдущей и текущей строки как

NewSal
2000
3000
4000
5000
7000

Что я уже пробовал:

Выберите EmpNo,
EmpName, зарплата,(выберите сумму(зарплату) от сотрудника e1, где
e1.EmpNo <= e2.EmpNo)как T_Sal
От сотрудника Е2

Я попробовал этот запрос, но это дает мне добавление всех предыдущих строк

1 Ответов

Рейтинг:
1

OriginalGriff

Посмотрите на функцию SQL LAG: LAG (Transact-SQL) | Microsoft Docs[^] - ссылка включает в себя примеры.


Member 13483961

функция задержки дает мне ошибку, так как она не является встроенной функцией в sql server.
Я попробовал функцию лага:
выберите EmpNo, EmpName,Salary + lag(зарплата,1,0) over(заказ по EmpNo) от сотрудника

OriginalGriff

Какую версию SQL Server вы используете? ЛАГ был представлен в издании 2012 года - так что он существует уже более 5 лет!