You need to use
PIVOT[
^]!
[UPDATE]
Try:
CREATE TABLE AAA
(
Dept varchar(50),
Teacher varchar(50),
[Subject] varchar(50),
[Fees per lecture] int
);
INSERT INTO AAA (Dept, Teacher, [Subject], [Fees per lecture])
VALUES('Science', 'Pro.Abhay', 'Physics', 500),
('Science', 'Pro Vishal', 'Chemistry', 300),
('Science', 'Pro Vishal', 'Biology', 400),
('Commerce', 'Pro.Abhay', 'Accountancy', 600),
('Commerce', 'Pro.Abhay', 'Economics', 400),
('Commerce', 'Pro Himanshu', 'English', 300),
('Art', 'Pro.Abhay', 'History', 500),
('Art', 'Pro Himanshu', 'Hindi', 300),
('Art', 'Pro Himanshu', 'Geography', 500);
SELECT Teacher, [Science], [Commerce], [Art]
FROM
(
SELECT Dept, Teacher, [Fees per lecture]
FROM AAA
) dt
PIVOT(SUM([Fees per lecture]) FOR [Dept] IN([Science], [Commerce], [Art])) pvt
db<>fiddle[
^]