SQL Pivot Kullanımı

Pivot table bir tablodaki verileri yatay olarak göstermemizi sağlar yani satırlarda bulunan bilgileri istediğimiz alanlara göre sutunlara çevirir.  Özellikle rapor hazırlarken verileri daha anlaşılır ve düzenli hale getirmemizi sağlar. Örneğin bir sipariş tablomuz var. Bir müşterinin verdiği her bir sipariş bir satırda gösteriliyor. Her müşteri için son 2 aylık sipariş bilgilerini görmek istiyoruz. Birinci yöntem her hareketi alt alta yazmak olabilir ama daha anlaşılır ve düzenli bir rapor için her müşteri bir satırda yer almalı ve bu satırda son altı aya ait tüm sipariş tutarlarının toplamı gösterilmelidir. Bu durumda pivot table kullanmak imdadımıza yetişir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT *
FROM (
      SELECT
       MusteriAdSoyad
      ,Donem
      ,sum(Tutar) as ToplamTutar 
      FROM Siparis
      group by MusteriAdSoyad ,Donem
     ) as gTablo
PIVOT
(
  SUM(ToplamTutar)
  FOR Donem IN ([200911],[200912],[201001])
)
AS p

Yukarıdaki sorgu sonucu aşağıdaki gibi her ay bir kolon olacak şeklide bilgilerimiz yatayda dizildi

MusteriAdSoyad 200911 200912
Ali DEMİR 80 2550
Metin TOSUN 3300 250
Sabri KUNT NULL 1580

Gördüğünüz gibi bu şeklide bir tablo oluşturmak sonucun daha düzenli olmasını sağladığı gibi incelenmesini kolaylaştırır.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s