Beyondrelational

Friday, May 28, 2010

Vertical data into Horizontal table (PIVOT)

Create Table tbl_SubCode
(
SubjectCode INT NOT NULL,
Subject Varchar(50) NULL
)

INSERT INTO tbl_SubCode Values (1,'English')
INSERT INTO tbl_SubCode Values (3,'Maths')
INSERT INTO tbl_SubCode Values (4,'Science')
GO
Create Table tbl_MarkDetails
(
AddNo varchar(25) NOT NULL,
SubjectCode INT NULL,
Marks Varchar(50) NULL
)

INSERT INTO tbl_MarkDetails Values ('12340','1','52')
INSERT INTO tbl_MarkDetails Values ('12340','3','100')
INSERT INTO tbl_MarkDetails Values ('12341','1','90')
INSERT INTO tbl_MarkDetails Values ('12341','3','99')



Select * From tbl_SubCode
Select * From tbl_MarkDetails


Select AddNo,[English],[Maths],[Science]
From
(Select A.AddNo,B.Subject,A.Marks
From tbl_MarkDetails AS A, tbl_SubCode AS B
Where A.SubjectCode=B.SubjectCode)PS
PIVOT
(
Max(Marks)
FOR Subject IN
([English],[Maths],[Science])
)AS PT



1 comment: