Herkese merhaba,

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

WITH CUBE komutu  istatistiksel sonuçlar çıkartılmasında işe yarayan bir deyimdir. Değerlerin tüm kombinasyonu için ara özet satır oluşturma işlemi yapar. WITH CUBE deyiminin WITH ROLLUP deyiminden tek farkı Group By deyiminde kullanılmış sütunların değerlerinin tüm kombinasyonu kadar özet oluşturmasıdır. Ö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
        )


--Örnek

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

Görüldüğü üzere birçok ara toplam vererek bize özet bir yapı sunmuştur.

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

613 Kez Okundu

Kategoriler: