SQL Server’da Kolonlar Arası Oran Hesabı Yapmak

Herkese merhaba,

Bu yazıda SQL Server’da kolonlar arası oran hesabı yapmak ile ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda iki kolon üzerindeki verileri oranlayarak sonuçları analiz etmek isteyebilirsiniz. Kolon sayısı ikiden fazla da olabilir. Ben iki kolon üzerinden bu işlemi anlatacağım.

Aşağıdaki kodu kullanarak tabloyu oluşturalım ve içine verileri ekleyelim.

--Tablonun oluşturulması

CREATE TABLE OranTablosu
(
    ID INT PRIMARY KEY NOT NULL,
    ToplamMiktar INT NULL,
    Kisi1 INT NULL,
    Kisi2 INT NULL
);


--Tabloya veri eklenmesi

INSERT INTO OranTablosu
(
    ID,
    ToplamMiktar,
    Kisi1,
    Kisi2
)
VALUES
(1, 22, 17, 5);
INSERT INTO OranTablosu
(
    ID,
    ToplamMiktar,
    Kisi1,
    Kisi2
)
VALUES
(2, 20, 15, 5);
INSERT INTO OranTablosu
(
    ID,
    ToplamMiktar,
    Kisi1,
    Kisi2
)
VALUES
(3, 12, 5, 7);
INSERT INTO OranTablosu
(
    ID,
    ToplamMiktar,
    Kisi1,
    Kisi2
)
VALUES
(4, 10, NULL, 10);
INSERT INTO OranTablosu
(
    ID,
    ToplamMiktar,
    Kisi1,
    Kisi2
)
VALUES
(5, 25, 25, NULL);

--Tabloyu görme kodu

SELECT * FROM OranTablosu

Kodu çalıştırınca aşağıdaki tabloyu göreceksiniz.

SQL Server'da Kolonlar Arası Oran Hesabı Yapmak

Yukarıdaki görselde görüldüğü üzere ToplamMiktar kolonu var ve Kisi1 ve Kisi2 kolonları var. Kisi1 ve Kisi2 kolonlarını ToplamMiktar kolonuna göre oranlayalım.

Aşağıdaki kodu çalıştıralım.

--Kolonlar arası oran hesabı

SELECT ID
	,ToplamMiktar
	,Kisi1
	,Kisi2
	,CASE 
		WHEN Kisi1 IS NULL
			OR Kisi1 = 0
			THEN 0
		ELSE CAST((Kisi1 * 100.0) / ToplamMiktar AS DECIMAL(10, 2))
		END AS [Kisi1%]
	,CASE 
		WHEN Kisi2 IS NULL
			OR Kisi2 = 0
			THEN 0
		ELSE CAST((Kisi2 * 100.0) / ToplamMiktar AS DECIMAL(10, 2))
		END AS [Kisi2%]
FROM OranTablosu

Kodu çalıştırınca aşağıdaki sonucu göreceksiniz.

SQL Server'da Kolonlar Arası Oran Hesabı Yapmak

Görüldüğü üzere Kisi1% ve Kisi2% kolonlarında oranları göstermiş olduk.

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

633 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!