TSQL multi Pivot Sorgusu

BİTETO ÜYELERİ

ÖMER ÇARNAÇAR

5.03.2018

1 Yorum


Pivot ile sorgulama işlemine ek olarak çoklu pivot sorgusu ; 

Tasarım örnektir.LOGO veritabanı ile direk uyumlu çalışabilir.

 

SET LANGUAGE Turkish

SELECT
    pv2.NAME
   ,pv2.[1] AS 'Miktar_Ocak'
   ,pv2.Ocak
   ,pv2.[2] AS 'Miktar_Şubat'
   ,pv2.Şubat
   ,pv2.[3] AS 'Miktar_Mart'
   ,pv2.Mart
   ,pv2.[4] AS 'Miktar_Nisan'
   ,pv2.Nisan
   ,pv2.[5] AS 'Miktar_Mayıs'
   ,pv2.Mayıs
   ,pv2.[6] AS 'Miktar_Haziran'
   ,pv2.Haziran
   ,pv2.[7] AS 'Miktar_Temmuz'
   ,pv2.Temmuz
   ,pv2.[8] AS 'Miktar_Agustos'
   ,pv2.Agustos
   ,pv2.[9] AS 'Miktar_Eylül'
   ,pv2.Eylül
   ,pv2.[10] AS 'Miktar_Ekim'
   ,pv2.Ekim
   ,pv2.[11] AS 'Miktar_Kasım'
   ,pv2.Kasım
   ,pv2.[12] AS 'Miktar_Aralık'
   ,pv2.Aralık


FROM (SELECT
        ITM.NAME
       ,STLINE.LINENET AS TUTAR
       ,DATENAME(MONTH, STLINE.DATE_) AS AY
       ,MONTH(STLINE.DATE_) AYLIK
       ,STLINE.AMOUNT AS ADET
    FROM LG_017_01_STLINE AS STLINE
    INNER JOIN LG_017_ITEMS AS ITM
        ON ITM.LOGICALREF = STLINE.STOCKREF) AS t

PIVOT (
SUM(t.TUTAR)
FOR t.AY IN ([Ocak], [Şubat], [Mart], [Nisan], [Mayıs], [Haziran], [Temmuz], [Agustos], [Eylül], [Ekim], [Kasım], [Aralık])
) AS pv1

PIVOT (
SUM(ADET)
FOR AYLIK IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12])
) AS pv2

GO

Başlık Değer