A
B
C
Ç
D
E
F
G
Ğ
H
I
İ
J
K
L
M
N
O
P
R
S
Ş
T
U
Ü
V
Y
Z
Q
W
X
+ Ekle
SQL Serverda Pivot Tablolarla Çalışmak

SQL Serverda Pivot Tablolarla Çalışmak Bu makalemizde pivot tablo nedir, SQL"de nasıl kullanılır, ne işe yarar? gibi konuları işleyeceğiz. Ardından da dynamic pivot table nasıl oluşturulur kısaca bir göz atacağız.


İlk olarak pivot tablo nedir ne işe yarar bir öğrenelim.

Pivot tablo, rapor halindeki verilerin daha anlaşılır bir biçimde ve özet halinde sunulması için sıkça kullanılan bir yöntemdir. Daha çok gruplamak ve ortalama değerlerle birlikte görüntülemek amacıyla kullanılır. Verilerin tablo halinde görüntülenmesini sağlar.

Office kullanıcılarından iş zekası uzmanlarına kadar birçok kullanıcı tarafından sıkça tercih edilir. Excel ve Access kullanılarak kolayca oluşturulabilir.

SQL pivot tablolar sayesinde, OLAP raporlarına ait veri yığınlarını istediğiniz gibi SQL Server"da görüntüleyebilirsiniz.

Sanırım tanım itibariyle az çok pivot tablonun ne olduğu anlaşılmıştır. Öyleyse SQL Server"da pivot tabloyu nasıl oluşturacağımıza geçebiliriz.





Microsoft, ilk olarak SQL Server 2005 ile birlikte PIVOT ve UNPIVOT T-SQL komutlarının kullanımını geliştiricilere sundu. Yani birazdan oluşturacağımız pivot tablo örneklerini yalnız SQL Server 2005 ve üzeri SQL Server sürümlerinde kullanabilirsiniz.


Şimdi bir pivot tablo nasıl yazılır genel yapısına bir göz atalım.


SELECT
[sutun1],
[sutun2]
...
FROM (
SELECT      
-- select cümlesi ile pivot sql sorgusu.
) AS TableAlias  
-- Tablo için takma ad.
PIVOT
(
<MIN,MAX,SUM,COUNT...gibi fonksiyonlar>(yapılacak işlem göre yer alacak sütun veya sütunlar)
FOR [Pivot tablo sütunları için sütun adını içeren değer veya değerler]
IN (
[sutun1], ... ,[sutun5]    
-- görüntülenecek sutunlar
)
) AS PivotTableAlias   
 -- Pivot tablo için verilen takma ad.
ORDER BY clause       -- tercihe göre isterseniz belli bir kritele sıralamada yaptırabilirsiniz.


AdventureWorks veritabanını kullanarak aşağıdaki gibi örnek bir pivot tablo oluşturalım.


Şimdi de daha iyi anlayabilmemiz için iki farklı sorgu yazalım.

   

Yukarıdaki sorguyu çalıştırdığımızda ürünlere ait farklı renklerin yer aldığı Color sutununu satırlara dönüştürerek aynı ürüne ait farklı renkleri tek bir satırda görüntülememizi sağlayacak bir pivot tablo oluşturalım.

Resimde gördüğünüz gibi, renkleri sutunlar halinde yazarak bir ürüne ait farklı renk çeşitlerini tek bir satırda görüntüledik.
Sanırım yukarıdaki örnekle konu daha iyi anlaşılmıştır.


Bazen yazacağımız pivot tabloya ait sütun başlıklarında ne kullanılması gerektiğini bilmiyor olabiliriz veya başlıkların tabloda sorguya göre dinamik yerleştirilmesini isteyebiliriz. Böyle bir durumda dinamik pivot tablo yapısından yararlanılabilir.

Şimdi aşağıdaki sorgumuza bir göz atalım.


Daha sonra da bu sorgudan yola çıkarak dinamik pivot tablo oluşturalım.

 

Resimde gördüğünüz gibi bir yapıya sahip. Şimdi adım adım ilerleyerek nasıl dinamik bir yapı oluşturmuşuz bir bakalım.


DECLARE @PivotColumnHeaders VARCHAR(MAX)  --PivotColumnHeaders adında başlık için bir değişken oluşturuyoruz.

SELECT @PivotColumnHeaders = COALESCE(       --COALESCE(expression [...n]) metodundan yararlanarak başlıklarımızı oluşturuyoruz.  
@PivotColumnHeaders + ",[" + cast(Name as varchar) + "]",
"[" + cast(Name as varchar)+ "]"
)
FROM Sales.SalesTerritory

DECLARE @PivotTableSQL NVARCHAR(MAX)     --Sütunlarımız için oluşturulan başlıklardan sonra PivotTableSQL adında dinamik pivot tablomuz için bir değişken oluşturup bu değişkene sql sorgumuzu atayıp Execute komutu ile çağıracağız.

SET @PivotTableSQL = N"
SELECT *
FROM (
SELECT
YEAR(H.OrderDate) [Year],
T.Name,
H.TotalDue
FROM Sales.SalesOrderHeader H
LEFT JOIN Sales.SalesTerritory T
ON H.TerritoryID = T.TerritoryID
) AS PivotData
PIVOT (
SUM(TotalDue)                         --SUM() metodu ile TotalDue değerlerinin toplamı hesaplanıyor ve ilgili başlığa ait sutuna yazdırılıyor.
  
FOR Name IN (
" + @PivotColumnHeaders + "
)
) AS PivotTable
"

EXECUTE(@PivotTableSQL)      -- Dinamik pivot tablomuzu çalıştırmak için de EXECUTE komutunu kullanıyoruz.


Sonuç ise aşağıdaki gibidir.

   

Yararlanmanız temennisiyle, herkese iyi çalışmalar...


  • diline pelesenk olmak ne demek
  • dillere pelesenk olmuş ne demek
  • pelesenk
  • pelesenk ne demek
  • Pelesenk Ne Demek – Pelesenk Sözlük Anlamı
  • pelesenk olmak ne demek
  • pelesenk olmak ne demektir
  • pelesenk olmuş ne demek
  • Yüksek Yüksek Tepelere sözleri
  •   Ad Soyad
      Yorum