[T-Sql] Alt Sorgular Ödev-Cevap

Merhaba arkadaşlar,
Bir önceki yazımda alt sorguları anlatmıştım. En sonunda da bir ödev vermiştim. O ödevin cevaplarını burada veriyorum.

1997 yılında yapılan satışlarda ne kadar ciro elde edilmiştir?

select 
       SUM(od.Quantity*od.UnitPrice) 
   from [Order Details] as od 
   where od.OrderID in(
      select o.OrderID 
          from Orders as o 
           where o.OrderDate 
               between '01.01.1997' and '01.01.1998'
   )

ALFKI müşterisinin yaptığı toplam satışların cirosu nedir?

select 
       SUM(od.Quantity*od.UnitPrice) 
   from [Order Details] as od 
   where od.OrderID in(
       select 
              o.OrderID 
          from Orders as o 
          where o.CustomerID='ALFKI')

İsmi verilen müşterinin kaç adet (ürün sayısı değil) satış yaptığını gösteriniz:

select 
       COUNT(od.OrderID) 
   from [Order Details] as od 
   where od.OrderID in(
       select o.OrderID 
          from Orders as o 
          where o.CustomerID='ALFKI')

Speedy express isimli kargo firması bu güne kadar kaç adet ürün taşımıştır?

select 
       COUNT(od.OrderID) 
   from [Order Details] as od 
   where od.OrderID in(
      select o.OrderID 
         from Orders as o 
         where o.ShipVia in(
            select s.ShipperID 
               from Shippers as s 
               where s.CompanyName ='speedy express'))

ALFKI isimli müşteri hangi kategorilerde ürün satın almıştır?

select 
       p.CategoryID,COUNT(p.CategoryID) 
   from Products as p where p.ProductID in(
      select od.ProductID 
         from [Order Details] as od 
         where od.OrderID in(
            select o.OrderID 
               from Orders as o 
               where o.CustomerID = 'ALFKI')) 
   group by p.CategoryID

nancy davolio hangi firmanın ürünlerini en fazla satmıştır?

select 
       top(5) o.CustomerID,
       COUNT(o.CustomerID) 
   from Orders as o 
   where o.EmployeeID in(
      select e.EmployeeID 
         from Employees as e 
         where e.FirstName='nancy' and e.LastName ='davolio')
   group by o.CustomerID
   order by COUNT(o.CustomerID) desc

1997 yılında alışveriş yapıp 1998 de yapmayan (kaybettiğimiz) müşteriler kimlerdir ?

select 
       os.CustomerID 
   from Orders as os 
   where os.CustomerID in(
      select o.CustomerID 
         from Orders as o 
         where o.OrderDate 
            between '01.01.1997' and '01.01.1998')
   and os.CustomerID not in(
      select o.CustomerID 
         from Orders as o 
         where o.OrderDate 
            between '01.01.1998' and '01.01.1999')
   group by os.CustomerID

Bu yazım da buraya kadar. Bir sonraki yazımda görüşmek üzere.

Bir cevap yazın

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