Hi,
Please refer below code.
SQL
DECLARE @Timetable AS TABLE(StaffID INT,StaffName VARCHAR(20),Day VARCHAR(10),Hour CHAR(5),Subject VARCHAR(20))
INSERT INTO @TimeTable VALUES(14207101,'Akila B.','Monday','I','DAA')
INSERT INTO @TimeTable VALUES(14207102,'John A.','Monday','III','ADJAVA')
INSERT INTO @TimeTable VALUES(14207103,'Bala M.','Monday','VI','SE')
INSERT INTO @TimeTable VALUES(14207104,'Thaila G.','Monday','I','PD')
INSERT INTO @TimeTable VALUES(14207105,'Ben A.','Monday','II','SQL')
INSERT INTO @TimeTable VALUES(14207101,'Akila B.','Tuesday','V','DAA')
INSERT INTO @TimeTable VALUES(14207102,'John A.','Tuesday','II','ADJAVA Lab')
INSERT INTO @TimeTable VALUES(14207103,'Bala M.','Tuesday','III','SE Lab')
INSERT INTO @TimeTable VALUES(14207104,'Thaila G.','Tuesday','IV','PD')
INSERT INTO @TimeTable VALUES(14207105,'Ben A.','Tuesday','I','SQL')
INSERT INTO @TimeTable VALUES(14207101,'Akila B.','Wednesday','V','DAA')
INSERT INTO @TimeTable VALUES(14207102,'John A.','Wednesday','I','ADJAVA Lab')
INSERT INTO @TimeTable VALUES(14207103,'Bala M.','Wednesday','II','SE')
INSERT INTO @TimeTable VALUES(14207104,'Thaila G.','Wednesday','III','PD')
INSERT INTO @TimeTable VALUES(14207105,'Ben A.','Wednesday','VI','SQL Lab')
INSERT INTO @TimeTable VALUES(14207101,'Akila B.','Thrusday','VI','DAA')
INSERT INTO @TimeTable VALUES(14207102,'John A.','Thrusday','II','ADJAVA')
INSERT INTO @TimeTable VALUES(14207103,'Bala M.','Thrusday','IV','SE Lab')
INSERT INTO @TimeTable VALUES(14207104,'Thaila G.','Thrusday','III','PD')
INSERT INTO @TimeTable VALUES(14207105,'Ben A.','Thrusday','III','SQL')
INSERT INTO @TimeTable VALUES(14207101,'Akila B.','Friday','II','DAA')
INSERT INTO @TimeTable VALUES(14207102,'John A.','Friday','III','ADJAVA')
INSERT INTO @TimeTable VALUES(14207103,'Bala M.','Friday','I','SE')
INSERT INTO @TimeTable VALUES(14207104,'Thaila G.','Friday','I','PD')
INSERT INTO @TimeTable VALUES(14207105,'Ben A.','Friday','VI','SQL')
DECLARE @StaffID INT
SET @StaffID = 14207101
SELECT * FROM
(
SELECT [Day],[Hour],[Subject] FROM @TimeTable WHERE StaffID = @StaffID
) as tbl
PIVOT(MAX(Subject) FOR [Hour] IN ([I],[II],[III],[IV],[V],[VI])) as PVT
Output
Day |
I |
II |
III |
IV |
V |
VI |
Friday |
NULL |
DAA |
NULL |
NULL |
NULL |
NULL |
Monday |
DAA |
NULL |
NULL |
NULL |
NULL |
NULL |
Thrusday |
NULL |
NULL |
NULL |
NULL |
NULL |
DAA |
Tuesday |
NULL |
NULL |
NULL |
NULL |
DAA |
NULL |
Wednesday |
NULL |
NULL |
NULL |
NULL |
DAA |
NULL |
I hope this will help you out.