24 Şubat 2019 Pazar

SQL HAVING YAPISI

------------HAVING YAPISI-------------------
--Aggregate fonksiyonlar araciliği ile alınan sonucların bir where kriteri
--içerisinde kullanılmamaktadır.Bunun yerine ("where"yerine) kullandığımız
--anahtar kelime "having" anahtar kelimesidir...
--Toplam siparis miktarı 1200'un üzerinde olan urunlerin adlarını siparis mıktarını gösteriniz...
select ProductName,SUM(Quantity) as 'Siparis Miktarı'
 from [Order Details] inner join
Products p on p.ProductID=[Order Details].ProductID group by ProductName
having SUM(Quantity)>1200
order by [Siparis Miktarı] desc
--having:group by ın fonksiyonudur.filtreleme yapabiliriz bu sayede.yukarıda
--yaptığımız örneklerden birini ele alalım ve geliştirelim.
--Hangi personle hangi ürünü toplam kaç dolarlık satmıştır.
--1000'den büyük olanları getirelim
Select e.FirstName+'  '+e.LastName, p.ProductName,SUM(od.UnitPrice*od.Quantity*
(1-od.Discount)) from Products p left join [Order Details] od
on p.ProductID=od.ProductID
left join Orders o on o.OrderID=od.OrderID left join
 Employees e on
e.EmployeeID=o.EmployeeID
group by
e.FirstName+'  '+e.LastName,p.ProductName having
 sum
(od.UnitPrice*od.Quantity*(1-od.Discount))>1000
--250'den fazla siparis tasimis olan kargo firmalarının adlarını,telefon numarlarını
--ve siparis miktarlarını raporlayınız...
Select CompanyName,Phone,COUNT(ShipVia) as [Siparis Miktar]
from Orders o inner join
Shippers as s on s.ShipperID=o.ShipVia group by CompanyName,Phone
having Count(ShipVia) >250 order by [Siparis Miktar] desc

Hiç yorum yok:

Yorum Gönder