Here is a query if all columns are from same table..
SELECT Name,
[Math], [Art], [English]
FROM
(SELECT Name,Course, Marks
FROM mTab ) AS SourceTable
PIVOT
(
SUM(Marks)
FOR Course IN ([Math], [Art], [English])
) AS PivotTable;
I tested with a CTE (temp table with some values) try it yourself below..
;With mTab as
(
SELECT'Guru' AS Name, 'Math' AS Course, '100' AS Marks
UNION
SELECT'Guru' AS Name, 'Art' AS Course, 90 AS Marks UNION
SELECT'Guru' AS Name, 'English' AS Course, 80 AS Marks UNION
SELECT'Prasad' AS Name, 'Math' AS Course, 70 AS Marks UNION
SELECT'Prasad' AS Name, 'Art' AS Course, 60 AS Marks UNION
SELECT'Prasad' AS Name, 'English' AS Course, 65 AS Marks UNION
SELECT'Mike' AS Name, 'Math' AS Course, 55 AS Marks UNION
SELECT'Mike' AS Name, 'Art' AS Course, 50 AS Marks UNION
SELECT'Mike' AS Name, 'English' AS Course, 45 AS Marks UNION
SELECT'Ali' AS Name, 'Math' AS Course, 40 AS Marks UNION
SELECT'Ali' AS Name, 'Art' AS Course, 35 AS Marks UNION
SELECT'Ali' AS Name, 'English' AS Course, 20 AS Marks
)
SELECT Name,
[Math], [Art], [English]
FROM
(SELECT Name,Course, Marks
FROM mTab ) AS SourceTable
PIVOT
(
SUM(Marks)
FOR Course IN ([Math], [Art], [English])
) AS PivotTable;
your Output will be something like below
Name Math Art English
Ali 40 35 20
Guru 100 90 80
Mike 55 50 45
Prasad 70 60 65