Pivot Table Nedir Nasıl Kullanılır

Pivot Table Nedir Nasıl Kullanılır

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 6 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. Bu örneğin daha iyi anlaşılması için küçük bir çalışma yapalım.

İlk olarak basit bir tablo yapalım ve içine aşağıdaki örnek verileri atalım.

CREATE TABLE [dbo].[Siparis](

[SiparisID] [int] IDENTITY(1,1) NOT NULL,

[MusteriAdSoyad] [varchar](80) NULL,

[UrunAdi] [varchar](50) NULL,

[Tutar] [decimal](10, 2) NULL,

[Donem] [int] NULL

) ON [PRIMARY]

SiparisID MusteriAdSoyad UrunAdi Tutar Donem
1 Sabri KUNT Apple IPAD 1025.00 201001
2 Ali DEMİR LG Netbook 950.00 200912
3 Metin TOSUN PacketBell Notbook 1200.00 200911
4 Sabri KUNT Nikon D5000 1480.00 200912
5 Sabri KUNT Microsoft Mouse 100.00 200912
6 Metin TOSUN HP Printer 250.00 200912
7 Metin TOSUN HP Server 2100.00 200911
8 Ali DEMİR HP Pavilion 1600.00 200912
9 Ali DEMİR ADSL Modem 80.00 200911

Şimdi müşteri başına aylık olarak ne kadar harcama yapıldığını görmek için bir sorgu yazalım.

SELECT

MusteriAdSoyad

,Donem

,sum(Tutar) as ToplamTutar

FROM Siparis

group by MusteriAdSoyad ,Donem

Yukarıdaki sorgu sonucu aşağıdaki gibi her donem için müşterilerin kaç liralık harcama yaptıklarını görürüz.

MusteriAdSoyad Donem ToplamTutar
Ali DEMİR 200911 80.00
Metin TOSUN 200911 3300.00
Ali DEMİR 200912 2550.00
Metin TOSUN 200912 250.00
Sabri KUNT 200912 1580.00
Sabri KUNT 201001 1025.00

Peki, bizim binlerce müşterimiz olsa ve toplam 1 yıl boyunca her ay ne kadarlık harcamala yaptıklarını görmek istersek yukarıdaki gibi bir sorgunun sonucunda içinden çıkamayacağımız büyük bir tablomuz olurdu. Her müşteri için aylık harcama miktarlarını farklı satırlarda göstermek hiç de işimize gelmezdi.

Şimdi ise her müşteriyi tek bir satırda gösterelim ve sipariş verdikleri her ay içinde bir kolon açarak bunun altında toplam sipariş tutarlarını gösterelim. Pivot table için Siparis tablosunu gruplayarak kullanmamız gerekiyor. Çünkü sipariş tablosunda her ay için müşteri bazında birden fazla harcama var. Yukarıda yaptığımız gruplamayı yeni bir tablo olarak alıp bunu pivot yaparsak istediğimiz sonuca ulaşabiliriz.

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 201001
Ali DEMİR 80.00 2550.00 NULL
Metin TOSUN 3300.00 250.00 NULL
Sabri KUNT NULL 1580.00 1025.00

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.

 
Alıntıdır. Mehmet Sabri KUNT
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: