Saturday, September 27, 2008

Pivot Table Concept in SQL Server 2005

Pivot is a very good concept of converting Row to columns in SQL Server 2005
It is Very Helpful way When the no of colums are fixed which is to be converted from rows
-- Creating Test TableCREATE TABLE Product(Cust VARCHAR(25), Product VARCHAR(20), QTY INT)GO -- Inserting Data into TableINSERT INTO Product(Cust, Product, QTY) VALUES('MALAY','VEG',2)INSERT INTO Product(Cust, Product, QTY) VALUES('MALAY,'SODA',6)INSERT INTO Product(Cust, Product, QTY) VALUES('MALAY,'MILK',1)INSERT INTO Product(Cust, Product, QTY) VALUES('MALAY','BEER',12)INSERT INTO Product(Cust, Product, QTY) VALUES('MILAP','MILK',3)INSERT INTO Product(Cust, Product, QTY) VALUES('MILAP','BEER',24)INSERT INTO Product(Cust, Product, QTY) VALUES('MALAY','VEG',3)GO SELECT * FROM Product
ResultCust Product QTY
------------------------- -------------------- -----------
MALAY VEG 2
MALAY SODA 6
MALAY MILK 1
MALAY BEER 12
MILAP MILK 3
MILAP BEER 24
MALAY VEG 3
GO SELECT CUST, VEG, SODA, MILK, BEER FROM ( SELECT CUST, PRODUCT, QTY FROM Product) up PIVOT (SUM(QTY) FOR PRODUCT IN (VEG, SODA, MILK, BEER)) AS pvt ORDER BY CUSTGO
Result
CUST VEG SODA MILK BEER
--------------- -------- ----------- -------- -----------
MILAP NULL NULL 3 24
MALAY 5 6 1 12
It Helped Me So let Me share With all of you

Regards
Mrugank Dholakia
(MCA) Software Enginner