Hi TZacks-2728,
set dateformat ymd;
DECLARE @Employee TABLE
(
EmpCode VARCHAR(10),
EmpName VARCHAR(10),
JoiningDate DATE
);
INSERT INTO @Employee VALUES ('1', 'Rajendra', '2018-09-01')
INSERT INTO @Employee VALUES ('2', 'Manoj', '2018-10-01')
INSERT INTO @Employee VALUES ('3', 'Sonu', '2018-03-10')
INSERT INTO @Employee VALUES ('4', 'Kashish', '2018-10-25')
INSERT INTO @Employee VALUES ('5', 'Tim', '2018-12-01')
INSERT INTO @Employee VALUES ('6', 'Akshita', '2018-11-01')
SELECT * FROM @Employee;
SELECT *,
Lag(JoiningDate, 1) OVER(
ORDER BY JoiningDate ASC) AS EndDate
FROM @Employee;
WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (
ORDER BY JoiningDate
) row_num
FROM @Employee
)
SELECT c1.EmpCode, c1.EmpName, c1.JoiningDate, c2.JoiningDate AS EndDate
FROM CTE c1
LEFT JOIN CTE c2 ON (c1.row_num -1 = c2.row_num)
Regards Jörg