add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
DECLARE @MYTable Table(ID int,SALARY DECIMAL(18,2),Months INT,DOJMONTH VARCHAR(100));
INSERT INTO @MYTable VALUES(1,6000,3,'MARCH');
INSERT INTO @MYTable VALUES(2,4000,5,'JUNE');
INSERT INTO @MYTable VALUES(3,7000,4,'MARCH');

WITH CTE AS
(SELECT *,
CASE WHEN DOJMONTH='January' THEN 1
WHEN DOJMONTH='February' THEN 2
WHEN DOJMONTH='March' THEN 3
WHEN DOJMONTH='April' THEN 4
WHEN DOJMONTH='May' THEN 5
WHEN DOJMONTH='June' THEN 6
WHEN DOJMONTH='July' THEN 7
WHEN DOJMONTH='August' THEN 8
WHEN DOJMONTH='September' THEN 9
WHEN DOJMONTH='October' THEN 10
WHEN DOJMONTH='November' THEN 11
WHEN DOJMONTH='December' THEN 12 ELSE NULL END MonthNum
FROM @MYTable
)
SELECT ID,
CASE WHEN DOJMONTH='January' OR
(MonthNum=1 AND ((MonthNum+Months)-1)>=1)
THEN SALARY
ELSE NULL END AS January,
CASE WHEN DOJMONTH='February' OR
(MonthNum<2 AND ((MonthNum+Months)-1)>=2)
THEN SALARY
ELSE NULL END AS February,
CASE WHEN DOJMONTH='March' OR
(MonthNum<3 AND ((MonthNum+Months)-1)>=3)
THEN SALARY
ELSE NULL END AS March,
CASE WHEN DOJMONTH='April' OR
(MonthNum<4 AND ((MonthNum+Months)-1)>=4)
ID January February March April May June July August September October November December
1 null null 6000.00 6000.00 6000.00 null null null null null null null
2 null null null null null 4000.00 4000.00 4000.00 4000.00 4000.00 null null
3 null null 7000.00 7000.00 7000.00 7000.00 null null null null null null