Son Haberler
Anasayfa / Yazılım / SQL / Toplama Fonksiyonlarının WHERE Deyimi İle Birlikte Alt Sorgu Kullanılarak Ayrılması

Toplama Fonksiyonlarının WHERE Deyimi İle Birlikte Alt Sorgu Kullanılarak Ayrılması

Bu yazımda toplama fonksiyonlarını içeren ifadenin bir WHERE cümlesinden sonra gelen alt sorgu içinde kullanılarak ana sorgudan ayrıştılarak nasıl kullanılabildiğine değineceğim. Bu gibi kullanımları SQL’de görebilirsiniz o yüzden bu detay konulara değinmemek olmaz. Şöyle bir söz dizimi ile alt sorgular oluşturulabilir :

SELECT listelenecek kolonlar FROM tablo1 WHERE değer veya kolon = (SELECT toplama fonskiyonu(kolon1) FROM tablo2
WHERE kolon2 = tablo1.kolon3)

Burada söz diziminde görüleceği üzere WHERE’den sonra bir değer veya kolon adı veriliyor daha sonra IN yerine eşittir (=) operatörü kullanılıyor. Bir kaç örnekle kullanımını görelim :

SELECT CustomerID, SalesOrderID, TotalDue FROM Sales.SalesOrderHeader 
AS SatisSiparisBaslik WHERE 6 = (SELECT COUNT(*) FROM Sales.SalesOrderDetail 
WHERE SalesOrderID = SatisSiparisBaslik.SalesOrderID);

2013031802

Bir diğer örnek :

SELECT CustomerID, SalesOrderID, TotalDue FROM Sales.SalesOrderHeader 
AS SatisSiparisBaslik WHERE 6000 < (SELECT SUM(TotalDue) FROM Sales.SalesOrderHeader 
WHERE CustomerID = SatisSiparisBaslik.CustomerID);

Bu sorgumda TotalDue toplamı 6000’den daha fazla olan müşterilerin siparişlerine dair bilgiler listenecektir.

2013031803

Bir başka örnek :

SELECT CustomerID FROM Sales.Customer AS Musteri WHERE CustomerID > 
(SELECT SUM(TotalDue) FROM Sales.SalesOrderHeader WHERE CustomerID = Musteri.CustomerID);

Bu sorguda alt sorguda belirtilen bir toplama fonksiyonunun bir normal kolon ile karşılaştırılması ele alınmıştır.

2013031804

Bir cevap yazın

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