Database Simplified Headline Animator

Database Simplified

Wednesday 1 June 2011

Create Dynamic Pivot Table In MS SQL Server

 

--Create Table PivotTable


Create Table PivotTable(ProductName Varchar(100),MarketName Varchar(100),Price int)
Go

--insert Values Into Table
Insert Into PivotTable
Values
('Orange','Reliance Fresh',100),
('Mango','Big Bazar',120),
('Orange','Big Apple',30),
('Banana','CO-MART',150),
('Mango','CO-MART',75),
('Grape','Mandi',75)

Go


--Declaration Of Variable For Dynamic columns.

The Following Query is to Demonstrate Total Number Of columns That will Appear as column In Pivot Result.

Declare @PivotCols Varchar(2000)   
Set @PivotCols=''
Select @PivotCols=(Select Distinct '['+ MarketName +'],' from PivotTable for Xml Path(''))
Set @PivotCols=SUBSTRING(@PivotCols,1,len(@PivotCols)-1)
Select @PivotCols

Go

Dynamic columns Result Looks Like Following

image

 

Generate A Dynamic SQL To Get Dynamic Pivot


Declare @PivotCols Varchar(2000)   
Set @PivotCols=''
Select @PivotCols=(Select Distinct '['+ MarketName +'],' from PivotTable for Xml Path(''))
Set @PivotCols=SUBSTRING(@PivotCols,1,len(@PivotCols)-1)
--Dynemic Query To Run Pivot   
exec('Select * From PivotTable as tmp pivot (sum(price) for  MarketName in ('+@PivotCols+')) as tbl')

Go

Or

We Can Also Create Stored Procedure To Generate Results.

Create Procedure Usp_GetPivotTable
As
Declare @PivotCols Varchar(2000)   
Set @PivotCols=''
Select @PivotCols=(Select Distinct '['+ MarketName +'],' from PivotTable for Xml Path(''))
Set @PivotCols=SUBSTRING(@PivotCols,1,len(@PivotCols)-1)
--Dynemic Query To Run Pivot   
exec('Select * From PivotTable as tmp pivot (sum(price) for  MarketName in ('+@PivotCols+')) as tbl')
Go

 

Run The Query Or Execute the Store Procedure

Declare @PivotCols Varchar(2000)   
Set @PivotCols=''
Select @PivotCols=(Select Distinct '['+ MarketName +'],' from PivotTable for Xml Path(''))
Set @PivotCols=SUBSTRING(@PivotCols,1,len(@PivotCols)-1)
--Dynemic Query To Run Pivot   
exec('Select * From PivotTable as tmp pivot (sum(price) for  MarketName in ('+@PivotCols+')) as tbl')

--Or

Exec Usp_GetPivotTable

Go

 

image

 

Now We can Add More Rows To PivotTable And See the Result with Added Columns And Rows Automatically.

Surprised smile

3 comments:

  1. Permainan bandar poker terpercaya ini akan dapat memberi pada anda semuanya bonus besar yang diperlukan membernya. Bahkan juga bila anda bermain sehari-hari dalam game bandar poker terpercaya ini jadi anda pastinya juga akan dapat menjangkau yang namanya hadiah menarik bandar poker terpercaya yang juga akan dapat anda peroleh dalam game bandar poker terpercaya ini dengan mudahnya. Rasakan banyak bonus besar dalam game bandar poker terpercaya yang mengagumkan istimewa ini.
    Daftar Agen Bola Terpercaya
    Agen Judi Bola Terpercaya
    Daftar Situs Judi Online Terpercaya
    Situs Judi Bola Resmi
    Bandar Judi Bola Terbesar Di Dunia

    ReplyDelete
  2. Jampoker ialah Agen Dewa Poker yang menyiapkan permainan terlengkap serta menarik seperti CAPSA SUSUN, KIU KICK, Domino QQ serta Agen Poker Online Ceme Terbaik. Kami sebagai Agen Sakong Online juga menyiapkan DOMINO KIU KIU , CEME Online, BLACKJACK, CAPSA SUSUN. Semua permainan online uang asli itu bisa dimainkan lewat situs kami dan gadget anda android ataupun di ios, Mainkan Semua permainan yang kami siapkan di tempat ini hanya melalui cara mendaftar.

    Jampoker menyiapkan 7 permainan yang bisa anda mainkan cukup dengan menggunakan 1 id seperti Bandar ceme atau Ceme Keliling, Q Kick, Agen Dewa Poker, Live Poker, Omaha, Super 10, Dewa Poker dan Capsa Susun. Permainan itu adalah permainan yang sangat populer pada waktu ini di bidang Judi Online. Kami yakinkan jika kami melayani anda dengan sepenuh hati dapat di lihat dari langkah kami melayani anda selama 24jam. Semua operator kami sudah melakukan pelatihan terbaik untuk melayani semua pemain poker IDN dan poker online.

    Pelatihan terbaik yang sudah dilalui tidak sekedar dalam sisi pengetahuan dalam dunia judi, akan tetapi kami sudah memberi pelatihan pada semua operator kami untuk mempunyai sopan santun dalam menyikapi semua aduan dari para member kami. Tingkat kepuasan member jadi tolak ukur kami untuk selalu meningkatkan service kami untuk melayani anda. Jampoker sebagai Agen Poker IDN terbaik siap melayani anda dalam 24 jam penuh sehari-harinya.

    ReplyDelete