Sql’de hesaplanmış kolon oluşturmak

MsSql’de veritabanımız içindeki tablo içinde bazen iki kolon yani alandaki değeri kullanarak ortak iş yaptırabiliriz. Örnek vererek açıklayacak olursam; ürün tablomuzda ürün miktarı ve ürün birim fiyatı alanlarımız olsun, haliyle ürün miktarı*ürün birim fiyatı ilgili ürünün toplam fiyatını verecektir.

İlgili resimdeki gibi Ürün tablomuza kolonları oluşturalım (UrunAdi, UrunMiktar ve UrunBirimFiyat). Burada, ToplamFiyat kolonunu tabloyu oluşturduğumuz Design kısmında eklemediği mi söyleyeyim. ToplamFiyat’ı ilk cümlelerimde belirttiğim gibi UrunMiktar ve UrunBirimFiyat çarpılması sonucunda otomatik olarak(hesaplanmış) kendisinin eklemesini istiyoruz. Bunu yapabilmek için;

[cc lang=”sql”]Alter Table tblUrun ADD ToplamFiyat as UrunMiktar*UrunBirimFiyat[/cc]

tblUrun tablomuza Alter Table deyimi ile ToplamFiyat isminde hesaplanmış kolon oluşturuyoruz. Bu kolonu eklediğimizde yalnızca ürünün miktarı ve birim fiyatını girip alt satıra geçtiğimizde hesaplanmış toplam fiyat alanı otomatik gelecektir.

Tablomuzda ürünün toplam kdv dahil fiyatını da otomatik eklenmesini isteyebiliriz. Bunu yapabilmek için toplam fiyatın %18’ini almamız gerekir. Fakat toplam fiyat alanımız hesaplanmış alan olduğu için formüle toplam fiyatı değil de tekrardan miktar ve birim fiyatını işin içine katarak yapmamız gerekir.

Hadi buyurun şimdide hesaplanmış KDV dahil fiyat kolonunu oluşturalım;

[cc lang=”sql”]Alter Table tblUrun ADD KDVDahilFiyat as (((UrunMiktar*UrunBirimFiyat)/100)*18)+(UrunMiktar*UrunBirimFiyat)[/cc]

Görüldüğü gibi hesaplanmış kolonu gerçek bir kolon gibi kullanamıyoruz. Mesela Stored Procedure yazdığımızı düşünelim, bu procedure içinde hesaplanmış kolonu yazdığımızda procedure’ü oluşturmayıp hata verdiğini göreceksiniz.

“Sql’de hesaplanmış kolon oluşturmak” üzerine 8 yorum

  1. Toplama işlemi yaparken bir tane veri NULL olunca toplam NULL geliyor.Bunun bi çaresi varmıdır?

          1. sayıları topluyor fakat null değer olunca sonuç null çıkıyor null değer yoksa çalışıyor

          2. dostum böyle bi kod olmaz, select ile toplama işlemimi yapaya çalışıyorsun. Benim yazıyı bi oku sonra yorum yaz

  2. ya dostum ha select ha alter ben değere bakmak amaçlı bu kodu yazdım fikrin varsa söyle NULL olanlarla nasıl işlem yapcam

  3. KARDEŞ SQL KURMADAN DATA BASE FALAN OLUŞTURMADAN İNTERNET ÜZERİNDEN DEMO OLARAK KODLARI YAZIP SONUÇ ALABİLECEĞİMİZ ÇALIŞABİLECEĞİMİZ BİR SİTE YADA PROGRAM VARMI

Bir cevap yazın

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