Atiker Yazılım Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. Detaylı bilgi ve destek için: 444 82 99 |
SQL Server da Pivot Tablo Kullanımı |
Yanıt Yaz |
Yazar | |
mervenur.demic
Yeni Üye Kayıt Tarihi: 25 Ekim 2018 Durum: Aktif Değil Puanlar: 262 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı mervenur.demic
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Gönderim Zamanı: 30 Ekim 2018 Saat 14:08 |
SQL Server da Pivot
Tablo Kullanımı; Sorgu sonucunda dönen kayıtların satırlarını sütuna
çevirme tekniğine pivot tablo denmektedir. Pivot tablo oluşturabilmek
için önce kolon adlarının belirlenmesi gerekir. Eğer kolon isimlerini
kayıtlardan dinamik olarak almak istersek aşağıdaki sorgu ile bir değişkene
atarak pivot tabloda kullanabiliriz. DECLARE @PVT_KOLON NVARCHAR(MAX),@PVT_KOLON_ISNULL NVARCHAR(MAX) SELECT
@PVT_KOLON=COALESCE(@PVT_KOLON +',['+ KASA_TANIMI +']','['+ KASA_TANIMI +']') FROM PRG_VIEW_KASAHAREKET GROUP BY KASA_TANIMI SELECT @PVT_KOLON_ISNULL=COALESCE(@PVT_KOLON_ISNULL +',ISNULL(['+KASA_TANIMI +'],0) AS ['+KASA_TANIMI +']','ISNULL(['+KASA_TANIMI+'],0) AS ['+KASA_TANIMI +']') FROM
PRG_VIEW_KASAHAREKET GROUP BY KASA_TANIMI Örneğin; Aşağıdaki sorgu sonucunda dönen kayıtları pivota
dönüştüren sorguyu yazalım. Sorgu sonucunda dönen kayıtlar; SELECT KASA_TANIMI,SUM(CASE WHEN GIREN_TUTAR>0 THEN GIREN_TUTAR ELSE CIKAN_TUTAR*-1 END) AS TUTAR FROM
PRG_VIEW_KASAHAREKET GROUP BY KASA_TANIMI Pivot tabloya dönüştüren sorgu ve sonucu; DECLARE
@PVT_KOLON NVARCHAR(MAX),@PVT_KOLON_ISNULL
NVARCHAR(MAX) SELECT
@PVT_KOLON=COALESCE(@PVT_KOLON +',['+ KASA_TANIMI +']','['+ KASA_TANIMI +']') FROM
PRG_VIEW_KASAHAREKET GROUP BY KASA_TANIMI SELECT @PVT_KOLON_ISNULL=COALESCE(@PVT_KOLON_ISNULL +',ISNULL(['+KASA_TANIMI +'],0) AS ['+KASA_TANIMI +']' ,'ISNULL(['+KASA_TANIMI+'],0) AS ['+KASA_TANIMI +']') FROM PRG_VIEW_KASAHAREKET GROUP BY KASA_TANIMI EXEC (' SELECT '+@PVT_KOLON_ISNULL+' FROM ( SELECT KASA_TANIMI,SUM(CASE WHEN GIREN_TUTAR>0 THEN GIREN_TUTAR ELSE CIKAN_TUTAR*-1 END) AS TUTAR FROM PRG_VIEW_KASAHAREKET GROUP BY KASA_TANIMI ) AS T1 PIVOT(SUM(TUTAR) FOR
KASA_TANIMI IN ('+@PVT_KOLON+')) PVT ') |
|
Yanıt Yaz | |
Tweet
|
Forum Atla | Forum İzinleri Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |