Sql Server’da Pivot Table Kullanımı, Pivot Table Nedir ?

Sqlde normal select sorgularını çektiğimiz vakit dönen sonuçlarda hem görsel görünüm hem de daha düzgün ve gruplu bir çıktı almak istediğimizde Sqlde Pivot Table kullanmamız gerekir. Peki bu sonuçlar neye benzer bazı durumlarda sqlden dönen sonuçları alıp excelde Pivot Table yaparız ve işlemlerimize devam ederiz Ancak öyle durumlar vardır ki doğrudan raporu pivot almamız gerekir bazı özel otomasyonlar , yazılımlar veya erp programlarında sıklıkla karşılaşılan bir durumdur. Örnek vermek gerekirse satışlarınızı olduğu bir talo düşünün tabloda ürün adınız , satış miktarınız ve satış yapan kasiyer adı olmuş olsun , bunu alırken ürünler satırlarda sütunlarda ise kasiyer isimleri olsun ve buna göre satış rakamları toplam gelsin isteriz işte tam bu ve daha nice noktada Pivot Table işimizi görecektir. Bu şekilde sorgularımız daha anlamlı olacaktır.

Kullanım kalıbı aşağıdaki gibidir ;

SELECT * FROM
(
SELECT Kolon1, SUM(Kolon2)  FROM [Table1]
GROUP BY Kolon1
) Table2
PIVOT
(
SUM(Kolon2) FORKolon1 IN([VALUE1], [VALUE2], [VALUE3], [VALUE4], [VALUE5],...)
) PivotTable

Kodu açıklamak gerekir ise ilk select içindeki selectte normal bir select sorgusu yer almakta ve klasik gruplama işlemi yapılmıştır. burada değerler satırlar halinde gelecektir. kolon olarak Kolon1 ve Kolon2 gelecektir.

Sorgunun devamına baktığımız zaman PIVOT fonksiyonu ile Kolon2 alanı toplanacaktır, sütunlarda ise Kolon1 alanında geçen VALUE1,VALUE2,VALUE3 alanları görünecektir. 

Normal bir sorgu üzerinde görelim ;

USE AdventureWorks2014 ;

GO

SELECT DaysToManufacture, AVG(StandardCost) AS AverageCost FROM Production.Product

GROUP BY DaysToManufacture;

Sorgunu çıktısı aşağıdaki gibidir  :

Sql Pivot Çıktı

Pivot fonksiyonu ilke kullanalım :

SELECT  * FROM (

     SELECT DaysToManufacture, StandardCost FROM Production.Product

     ) AS SourceTable

     PIVOT ( AVG(StandardCost) FOR DaysToManufacture IN ([0], [1], [2], [3], [4])

) AS PivotTable;

Çıkan sonuç :

Sql Pivot Sonuç
Sql Pivot Sonuç

Daha fazla bilgi için Microsoftun sitesinde yer alan T-SQL Pivot örneklerine göz atmanızı tavsiye ederim.

Paylaş

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.