SQL Having Kullanımı

sdkbyrm

olwα.ɴeт
Üyelik Tarihi
23 Aralık 2020
Mesajlar
813
Beğeniler
1
Puanı
3
Ticaret: 0 / 0 / 0
Sql de bir fonksiyondan dönen değere göre koşul ifadesi yazılmak istenirse WHERE kullanımı hata verecektir. Bu tür koşul ifadeleri için HAVING kullanılmalıdır. HAVING ifadesi GROUP BY ifadesinden sonra ve varsa ORDER BY ifadesinden önce yazılmalıdır. HAVING ifadesinden sonra WHERE kullanımında olduğu gibi koşul yazılmalıdır.


Örnek 1: Örneğimizde borç ve alacak miktarları bulunan şirketlerin bulunduğu Bakiye tablosunu kullanacağız. Burada şirketlere ait borç ve alacak tutarlarının hesaplanarak borcu 3000′ den fazla olan şirketlerin listelenmesini sağlayacağız. Bakiye hesaplama işlemini yaparken SUM() fonksiyonundan faydalanacağız.
Tablomuz:



Toplam borcu 3000 TL den fazla olan müşterilerin listesini gösteren SQL sorgumuz:


1
2
3
4
5

SELECT musteri,(SUM(borc)-SUM(alacak)) AS BAKİYE
FROM Bakiye GROUP BY musteri
HAVING (SUM(borc)-SUM(alacak))>3000




Örnek 2: Bu örneğimizde kutuphane veritabanında kitap ve tur tablolarını kullanacağız.Yani birbiriyle ilişkili 2 tabloda HAVING kullanımını göreceğiz. Aynı kategoride 6’dan fazla kitap bulunan kategori numarası ve kategori adını listelenmesini sağlayacağız.
Kullanacağımız tablolar aşağıdaki gibi olacaktır.

kitap” tablosu:


tur” tablosu:


SQL Sorgumuz ve Ekran Çıktısı aşağıdaki gibi olacaktır.


1
2
3
4
5
6

SELECT kitap.turno,tur.turadi, COUNT(*) AS SAYI
FROM kitap,tur WHERE kitap.turno=tur.turno
GROUP BY kitap.turno,tur.turadi
HAVING COUNT(*)>6


 
Üst Alt