Bir önceki yazımızda Northwind’e giriş için basit sorgular paylaşmıştık. ( http://cagatayyildiz.com/northwind-sorgu-ornekleri-1/) Bu yazımızda ise tablolarımızı birleştirip, sorgularımızı biraz daha genişlettik.
--1998 yılı mart ayındaki siparişlerimin adresi, siparişi alan çalışanın adı, çalışanın soyadı select o.ShipAddress,e.FirstName,e.LastName from Orders as o inner join Employees e on e.EmployeeID = o.EmployeeID where YEAR(o.OrderDate) = 1998 and Month(o.OrderDate) = 3 --1997 yılı şubat ayında kaç siparişim var? select count(*) Adet from Orders as o where YEAR(o.OrderDate) = 1997 and Month(o.OrderDate) = 2 --London şehrinden 1998 yılında kaç siparişim var? select count(*) Adet from Orders o where YEAR(o.OrderDate) = 1998 and o.ShipCity = 'London' --1997 yılında sipariş veren müşterilerimin contactname ve telefon numarası select c.ContactName, c.Phone from Orders o inner join Customers c on o.CustomerID = c.CustomerID where YEAR(o.OrderDate) = 1997 --Taşıma ücreti 40 üzeri olan siparişlerim ( Freight) select * from Orders where Freight > 40 order by Freight --Taşıma ücreti 40 ve üzeri olan siparişlerimin şehri, müşterisinin adı select o.ShipCity,c.ContactName from Orders o inner join Customers c on o.CustomerID = c.CustomerID where Freight >= 40 --1997 yılında verilen siparişlerin tarihi, şehri, çalışan adı -soyadı ( ad soyad birleşik olacak ve büyük harf) select o.OrderDate, o.ShipCity, UPPER(emp.FirstName + ' ' + emp.LastName) from Orders as o inner join Employees as emp on o.EmployeeID = emp.EmployeeID where YEAR(o.OrderDate) = 1997 --1997 yılında sipariş veren müşterilerin contactname i, ve telefon numaraları ( telefon formatı 2223322 gibi olmalı ) select c.ContactName, TRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(c.Phone,'(',''),')',''),' ',''),'.',''),'-','')) from Orders as o inner join Customers as c on o.CustomerID = c.CustomerID where YEAR(o.OrderDate) = 1997 --Sipariş tarihi, müşteri contact name, çalışan ad, çalışan soyad (3 tablo birleştirilecek) select o.OrderDate, c.ContactName, emp.FirstName, emp.LastName from Orders as o inner join Customers as c on o.CustomerID = c.CustomerID inner join Employees as emp on o.EmployeeID = emp.EmployeeID --Geciken siparişlerim? select * from Orders as o where o.RequiredDate < o.ShippedDate --Geciken siparişlerimin tarihi, müşterisinin adı select o.OrderDate, c.ContactName from Orders as o inner join Customers as c on o.CustomerID = c.CustomerID where o.RequiredDate < o.ShippedDate --10248 nolu siparişte satılan ürünlerin adı, kategorisinin adı, adedi ( category,product,order details ) select p.ProductName, c.CategoryName, od.Quantity from [Order Details] od inner join Products p on od.ProductID = p.ProductID inner join Categories c on p.CategoryID = c.CategoryID where od.OrderID = 10248 --10248 nolu siparişin ürünlerinin adı , tedarikçi adı (Orders, products, suppliers ) select p.ProductName, s.CompanyName from [Order Details] od inner join Products p on od.ProductID = p.ProductID inner join Suppliers s on p.SupplierID = s.SupplierID where od.OrderID = 10248 --3 numaralı ID ye sahip çalışanın 1997 yılında sattığı ürünlerin adı ve adeti select p.ProductName, od.Quantity from [Order Details] od inner join Orders o on od.OrderID = o.OrderID inner join Products p on od.ProductID = p.ProductID where o.EmployeeID = 3 and YEAR(o.OrderDate) = 1997 --1997 yılında bir defasinda en çok satış yapan çalışanımın ID,Ad soyad select top 1(od.UnitPrice * od.Quantity) ToplamSatis, emp.EmployeeID, emp.FirstName, emp.LastName from [Order Details] od inner join Orders o on od.OrderID = o.OrderID inner join Employees emp on o.EmployeeID = emp.EmployeeID where YEAR(o.OrderDate) = 1997 order by ToplamSatis desc --1997 yılında en çok satış yapan çalışanımın ID,Ad soyad **** select top 1 SUM(od.UnitPrice * od.Quantity) ToplamSatis, emp.EmployeeID, emp.FirstName, emp.LastName from [Order Details] od inner join Orders o on od.OrderID = o.OrderID inner join Employees emp on o.EmployeeID = emp.EmployeeID where YEAR(o.OrderDate) = 1997 group by emp.EmployeeID,FirstName,LastName order by ToplamSatis desc --En pahalı ürünümün adı,fiyatı ve kategorisin adı nedir? select top 1 p.ProductName, c.CategoryName, p.UnitPrice from Products p inner join Categories c on p.CategoryID = c.CategoryID order by p.UnitPrice desc --Siparişi alan personelin adı,soyadı, sipariş tarihi, sipariş ID. Sıralama sipariş tarihine göre select o.OrderID, emp.FirstName + ' ' + emp.LastName, o.OrderDate from Orders o inner join Employees emp on o.EmployeeID = emp.EmployeeID order by o.OrderDate --SON 5 siparişimin ortalama fiyatı ve orderid nedir? (sepet toplamı ortalaması) select top 5 o.OrderID, AVG(od.UnitPrice * od.Quantity) from Orders o inner join [Order Details] od on o.OrderID = od.OrderID group by o.OrderID order by o.OrderID desc --Ocak ayında satılan ürünlerimin adı ve kategorisinin adı ve toplam satış miktarı nedir? select p.ProductName, c.CategoryName, od.Quantity from Orders o inner join [Order Details] od on o.OrderID = od.OrderID inner join Products p on p.ProductID = od.ProductID inner join Categories c on c.CategoryID = p.CategoryID where Month(o.OrderDate) = 1 --Ortalama satış miktarımın üzerindeki satışlarım nelerdir? (order details tablosu) declare @ortalama float set @ortalama = (select AVG(od.UnitPrice * od.Quantity) from [Order Details] od) select (od.UnitPrice * od.Quantity) Satis from [Order Details] od where (od.UnitPrice * od.Quantity) > @ortalama order by Satis --En çok satılan ürünümün(adet bazında) adı, kategorisinin adı ve tedarikçisinin adı (4 tablo birleşimi) select top 1 p.ProductName, c.CategoryName, s.CompanyName from [Order Details] od inner join Products p on od.ProductID = p.ProductID inner join Categories c on c.CategoryID = p.CategoryID inner join Suppliers s on s.SupplierID = p.SupplierID order by Quantity desc -- Kaç ülkeden müşterim var select distinct c.Country from Customers c --Hangi ülkeden kaç müşterimiz var select c.Country, COUNT(*) Adet from Customers c group by c.Country --3 numaralı ID ye sahip çalışan (employee) son Ocak ayından BUGÜNE toplamda ne kadarlık ürün sattı? select SUM(od.UnitPrice * od.Quantity) from Orders o inner join [Order Details] od on o.OrderID = od.OrderID where o.EmployeeID = 3 and YEAR(o.OrderDate) >= 1998 and MONTH(o.OrderDate) > 1 --10 numaralı ID ye sahip ürünümden son 3 ayda ne kadarlık ciro sağladım?</pre> <pre class="a-b-r-La">--10248 nolu siparişte satılan ürünlerin adı, kategorisinin adı, adedi ( category,product,order details ) select p.ProductName, c.CategoryName, od.Quantity from [Order Details] od inner join Products p on od.ProductID = p.ProductID inner join Categories c on p.CategoryID = c.CategoryID where od.OrderID = 10248 --10248 nolu siparişin ürünlerinin adı , tedarikçi adı (Orders, products, suppliers ) select p.ProductName, s.CompanyName from [Order Details] od inner join Products p on od.ProductID = p.ProductID inner join Suppliers s on p.SupplierID = s.SupplierID where od.OrderID = 10248 --3 numaralı ID ye sahip çalışanın 1997 yılında sattığı ürünlerin adı ve adeti select p.ProductName, od.Quantity from [Order Details] od inner join Orders o on od.OrderID = o.OrderID inner join Products p on od.ProductID = p.ProductID where o.EmployeeID = 3 and YEAR(o.OrderDate) = 1997 --1997 yılında bir defasinda en çok satış yapan çalışanımın ID,Ad soyad select top 1(od.UnitPrice * od.Quantity) ToplamSatis, emp.EmployeeID, emp.FirstName, emp.LastName from [Order Details] od inner join Orders o on od.OrderID = o.OrderID inner join Employees emp on o.EmployeeID = emp.EmployeeID where YEAR(o.OrderDate) = 1997 order by ToplamSatis desc --1997 yılında en çok satış yapan çalışanımın ID,Ad soyad **** select top 1 SUM(od.UnitPrice * od.Quantity) ToplamSatis, emp.EmployeeID, emp.FirstName, emp.LastName from [Order Details] od inner join Orders o on od.OrderID = o.OrderID inner join Employees emp on o.EmployeeID = emp.EmployeeID where YEAR(o.OrderDate) = 1997 group by emp.EmployeeID,FirstName,LastName order by ToplamSatis desc --En pahalı ürünümün adı,fiyatı ve kategorisin adı nedir? select top 1 p.ProductName, c.CategoryName, p.UnitPrice from Products p inner join Categories c on p.CategoryID = c.CategoryID order by p.UnitPrice desc --Siparişi alan personelin adı,soyadı, sipariş tarihi, sipariş ID. Sıralama sipariş tarihine göre select o.OrderID, emp.FirstName + ' ' + emp.LastName, o.OrderDate from Orders o inner join Employees emp on o.EmployeeID = emp.EmployeeID order by o.OrderDate --SON 5 siparişimin ortalama fiyatı ve orderid nedir? (sepet toplamı ortalaması) select top 5 o.OrderID, AVG(od.UnitPrice * od.Quantity) from Orders o inner join [Order Details] od on o.OrderID = od.OrderID group by o.OrderID order by o.OrderID desc --Ocak ayında satılan ürünlerimin adı ve kategorisinin adı ve toplam satış miktarı nedir? select p.ProductName, c.CategoryName, od.Quantity from Orders o inner join [Order Details] od on o.OrderID = od.OrderID inner join Products p on p.ProductID = od.ProductID inner join Categories c on c.CategoryID = p.CategoryID where Month(o.OrderDate) = 1 --Ortalama satış miktarımın üzerindeki satışlarım nelerdir? (order details tablosu) declare @ortalama float set @ortalama = (select AVG(od.UnitPrice * od.Quantity) from [Order Details] od) select (od.UnitPrice * od.Quantity) Satis from [Order Details] od where (od.UnitPrice * od.Quantity) > @ortalama order by Satis --En çok satılan ürünümün(adet bazında) adı, kategorisinin adı ve tedarikçisinin adı (4 tablo birleşimi) select top 1 p.ProductName, c.CategoryName, s.CompanyName from [Order Details] od inner join Products p on od.ProductID = p.ProductID inner join Categories c on c.CategoryID = p.CategoryID inner join Suppliers s on s.SupplierID = p.SupplierID order by Quantity desc -- Kaç ülkeden müşterim var select distinct c.Country from Customers c --Hangi ülkeden kaç müşterimiz var select c.Country, COUNT(*) Adet from Customers c group by c.Country --3 numaralı ID ye sahip çalışan (employee) son Ocak ayından BUGÜNE toplamda ne kadarlık ürün sattı? select SUM(od.UnitPrice * od.Quantity) from Orders o inner join [Order Details] od on o.OrderID = od.OrderID where o.EmployeeID = 3 and YEAR(o.OrderDate) >= 1998 and MONTH(o.OrderDate) > 1 --10 numaralı ID ye sahip ürünümden son 3 ayda ne kadarlık ciro sağladım?