Herkese merhaba,

Bu bölümde sizlere WITH ROLLUP kullanımından bahsedeceğim.

WITH ROLLUP komutu  istatistiksel sonuçlar çıkartılmasında işe yarayan bir deyimdir. Gruplanmış sütunların hiyerarşisine göre özet satır oluşturma işlemi yapar. Group By deyiminde kullanılmış sütun sayısı kadar gruplama gerçekleştirir. Group By deyiminde verilmiş kolonları sağdan sola doğru gruplar ve her grubun altına özet satır oluşturur. Örnek kullanımı aşağıdaki gibidir.

CREATE TABLE Calisanlar(
BolumNumarasi CHAR(1),
BolumAdi NVARCHAR(100),
KisiAdedi INT
)

--A Bölümü için kodlar


INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'A' , -- BolumNumarasi - char(1)
          N'Hizmet' , -- BolumAdi - nvarchar(100)
          2  -- KisiAdedi - int
        )


INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'A' , -- BolumNumarasi - char(1)
          N'Bilgisayar' , -- BolumAdi - nvarchar(100)
          1  -- KisiAdedi - int
        )

INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'A' , -- BolumNumarasi - char(1)
          N'Muhasebe' , -- BolumAdi - nvarchar(100)
          1  -- KisiAdedi - int
        )

--B BÖlümü için kodlar

INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'B' , -- BolumNumarasi - char(1)
          N'Hizmet' , -- BolumAdi - nvarchar(100)
          4  -- KisiAdedi - int
        )


INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'B' , -- BolumNumarasi - char(1)
          N'Bilgisayar' , -- BolumAdi - nvarchar(100)
          3  -- KisiAdedi - int
        )

INSERT INTO dbo.Calisanlar
        ( BolumNumarasi ,
          BolumAdi ,
          KisiAdedi
        )
VALUES  ( 'B' , -- BolumNumarasi - char(1)
          N'Muhasebe' , -- BolumAdi - nvarchar(100)
          6  -- KisiAdedi - int
        )


--1. Örnek

SELECT  BolumNumarasi ,
        SUM(KisiAdedi) AS Toplam
FROM    dbo.Calisanlar
GROUP BY BolumNumarasi
        WITH ROLLUP

--2. Örnek

SELECT  BolumNumarasi ,
        BolumAdi ,
        SUM(KisiAdedi) AS Toplam
FROM    dbo.Calisanlar
GROUP BY BolumNumarasi ,
        BolumAdi
        WITH ROLLUP

Özetlenmiş verileri 1. örnekte sadece bölüm numarasına göre getirirken, ikincisinde hem bölüm adı hem de bölüm numarasına göre getirmiştir.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

1.008 Kez Okundu

Kategoriler: