Declare @year varchar(max)=''
SELECT
@year= Stuff((SELECT ', [' + cast(s as varchar(max))+']'
FROM
(SELECT DISTINCT DATEPART(YYYY,Sdate) as s FROM dbo.StudDet
) x
For XML PATH ('')),1,1,'')
exec('select Months,'+@year+'
from
(
select cast(DATEPART(MONTH,Sdate) as varchar(max)) as Months,Score,
DATEPART(year,Sdate) as st
from dbo.StudDet
) x
pivot
(
max(Score)
for st in('+@year+')
)p ')