Tek Kolonu İki Kolon Olarak Özetlemek

Bazı durumlarda sorgulanacak tabloda bir kolon üzerindeki değere göre iki kolon türetme ihtiyacımız olabilir. Bu tek kolon genelde iki değer alır.(0,1 gibi). Örneklendirmek gerekirse, tabloda bulanan bir kolonda eğer değer 0 ise ödeme yapılmamış 1 ise ödeme yapılmış, eğer değer ‘T‘ ise taksitli satış eğer ‘P‘ ise peşin satış gibi kolonda bulunan flag ayrımına göre verileri özetleyebiliriz. Taksitli satış miktarı, Peşin satış miktarı gibi kolonlara parçalayabiliriz.Aslında miktar kolonu tek olmasına rağmen flag kolondaki değere göre 2 veya daha fazla kolona parçalayıp verilerimizi listeleyebiliriz. Ben yapmış olduğum örneğimde satış tipi kolonuna göre eğer hücre değeri ‘T‘ ise taksitli, ‘P‘ ise peşin satış olarak parçalayacağım.

Oluşturmuş olduğum tablo scripti:

[sql]

CREATE TABLE [dbo].[tblSales](
[ID] [int] IDENTITY(1,1) NOT NULL,
[SaleType] [nvarchar](5) NULL,
[SaleQty] [int] NULL,
[SaleYear] [date] NULL,
CONSTRAINT [PK_tblSales] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

[/sql]

Tablomda bulunan veriler:

rows

Verilerin özetlenmiş hali:

[sql]

SELECT
SatisYili=YEAR(SaleYear),
PesinSatisMiktari=SUM(IIF(SaleType=’P’,SaleQty,0)),
TaksitliSatisMiktari=SUM(IIF(SaleType=’T’,SaleQty,0))
FROM tblSales
GROUP BY SaleYear

[/sql]

columns

Not: IIF fonksiyonu Sql Server 2012 tarafından desteklenmektedir. Alt versiyonlar için Case When yapılarını kullanabilirsiniz.

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.