MS-SQL Pivot ile Satırları Sütunlara Aktarma (Transpose)

  • 40
  • (1)
  • (5)
  • 20 Haz 2017

Pivot işlemini bir örnek ile uygulamak için aşağıdaki gibi bir tablo oluşturun.


create table tabloFiyatlar
(UrunAdi nvarchar(50), Sube nvarchar(50), Fiyat money)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Ekran Kartı', 'Istanbul', 450.89)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Ekran Kartı', 'Ankara', 488.98)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Ekran Kartı', 'Antalya', 501.14)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'İşlemci', 'Istanbul', 650.45)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'İşlemci', 'Ankara', 660.45)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'İşlemci', 'Antalya', 680.45)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Klavye', 'Istanbul', 110.00)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Klavye', 'Ankara', 118.00)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Klavye', 'Antalya', 105.00)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Mouse', 'Istanbul', 54.99)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Mouse', 'Ankara', 87.99)
insert into tabloFiyatlar (UrunAdi, Sube, Fiyat)
values (N'Mouse', 'Antalya', 78.45)

select * from tabloFiyatlar

select sorgusu ile tablo çıktısı aşağıdaki gibi karşınıza gelecektir.

Aşağıdaki komut ile tabloFiyatlar içerisindeki her şube değerini birer sütun haline getirip, her şubeye karşılık gelen ortalama fiyat bilgisini alabilirsiniz.


select * from (
	select UrunAdi, Sube, Fiyat from tabloFiyatlar
) as tablo 
pivot(avg(Fiyat) 
	for Sube in ([Istanbul], [Ankara], [Antalya])) 
	as pivotTablo

Sonuç aşağıdaki gibi olacaktır.

İlişkili İçerikler

Bir tablodan satırları çekerken belli sayıda satırı atlayıp, belli sayıda satırı alarak projelerinizde sayfalama(pagination) gibi işlemleri kolaylaştırabilirsiniz.

Paylaşın
Etiket Bulutu