Özellikle raporlama kısmında çok fazla kullanılan pivot tablolar verilerin en özet halini sunmaktadır.
Pivotlar kısaca satırları sütuna çevirirler.
create table siparis ( siparisId int IDENTITY(1,1) PRIMARY KEY, musteriAdSoyad nvarchar(30), urunAd nvarchar(50), tutar int, donem date ) -- pivot için önce yukarıdaki tabloyu oluşturalım insert into siparis values ('Sabri KUNT','Apple IPAD','500','01.06.2010') insert into siparis values ('Ali DEMIR','LG Netbook ','600','01.06.2010') insert into siparis values ('Metin TOSUN','PacketBell Notbook','300','01.07.2010') insert into siparis values ('Sabri KUNT ','Apple IPAD','500','01.08.2010') insert into siparis values ('Sabri KUNT ','Nikon D5000 ','1200','01.06.2010') insert into siparis values ('Metin TOSUN','Microsoft Mouse','50','01.06.2010') insert into siparis values ('Metin TOSUN','HP Printer ','800','01.07.2010') insert into siparis values ('Ali DEMİR','HP Server ','1300','01.08.2010') insert into siparis values ('Ali DEMİR ','HP Pavilion ','100','01.08.2010') -- sonra tablonun içine yukarıdaki verileri ekleyelim select musteriAdSoyad,donem,SUM(tutar) as 'Toplam Tutar' from siparis group by musteriAdSoyad,donem /* bu kodla musterileri hangi dönemde ne kadar tutar harcadıklarını alt alta listeleyebiliriz. ama büyük veritabanlarında yüzlerce verimiz olduğunu düşünürsek işimize yarayan datayı görmek bizim için çok daha zor olur. böyle durumlarda sütunlaştırarak analizimizi daha kolay yapabiliriz. */ SELECT * FROM ( Select musteriAdSoyad,donem,SUM(tutar) as 'ToplamTutar' from siparis group by musteriAdSoyad,donem ) as normaltablo -- bu koda şimdi pivot satırımızı ekleyelim PIVOT ( SUM(ToplamTutar) for donem IN ([01.06.2010],[01.07.2010],[01.08.2010]) ) as pivottablo /* IN, or gibi bir anlamı var burda 01 haziran yada 1 temmuz yada 1 ağustos varsa listele gibi bir anlama geliyor. İsim isim listelediğinden artık istediğimiz dataya daha kolay ulaşabiliriz. */