15 Ağustos 2014 Cuma

HAVING JOIN (having join)

-- En çok aldığımız 3 toptancıyı, almış olduğumuz ürün miktarlarına göre raporlayınız.
SELECT TOP 3 CompanyName,COUNT(ProductID)  FROM Products p
JOIN Suppliers s
ON
p.SupplierID = s.SupplierID
GROUP BY CompanyName

-- Her bir üründen toplam ne kadarlık satış yapılmıştır ve o ürünler hangi kategoriye aittir ?
SELECT ProductName, CategoryName, SUM(od.UnitPrice*od.Quantity) FROM Categories c
JOIN Products p
ON
c.CategoryID = p.CategoryID
JOIN [Order Details] od
ON
p.ProductID = od.ProductID
GROUP BY ProductName, CategoryName

-- HAVING : Bir aggregate function'u, koşulda kullanıyorsanız, where yerine having kullanırsınız ve group by ifadesinden sonra kullanılır.
-- Toplam sipariş miktarı 1200'ün üzerinde olan ürünlerin adlarını ve sipariş miktarlarını gösteriniz.
SELECT ProductName, SUM(Quantity) FROM Products p
JOIN [Order Details] od
ON
od.ProductID = p.ProductID
GROUP BY ProductName
HAVING SUM(od.Quantity) > 1200

-- 250'den fazla sipariş taşımış olan kargo firmalarının adlarını, telefon numaralarını ve sipariş miktarlarını raporlayınız.
SELECT CompanyName, Phone, COUNT(ShipVia) FROM Orders o
JOIN Shippers s
ON
s.ShipperID = o.ShipVia
GROUP BY CompanyName, Phone
HAVING COUNT(o.ShipVia)>250

Hiç yorum yok: