Ćwiczenie 1. Wyświetl nazwę kategorii i nazwę oraz cenę produktu dla każdego produktu.

 

select CategoryName, ProductName, UnitPrice   from Products inner join Categories on Products.CategoryID=Categories.CategoryID;

 

Ćwiczenie 2. Pobierz klientów i ich zamówienia. Wyświetl nazwę klienta, numer ID zamówienia oraz datę zamówienia. Posortuj wyniki malejąca po nazwie klienta.

select CompanyName, OrderID, OrderDate  from Customers inner join Orders on Customers.CustomerID=Orders.CustomerID order by CompanyName desc ;

 

Ćwiczenie 3. Który klient nic nie kupił ? 

W SQL mamy dwa typy rekordów niedopasowanych: rodzic bez potomka  rekord osierocony. W zadaniu tym trzeba odnaleźć  rodzica bez potomka, czyli rekord z jednej tabeli (tej po stronie klucza podstawowego), który nie ma odpowiednika w drugiej tabeli.

select CompanyName, OrderID  from Customers left join Orders on Customers.CustomerID=Orders.CustomerID 
where OrderID is null;

 

Ćwiczenie 3.  Kto co kupił i ile zapłacił ?

W zapytaniu użyto aliasów tabel, aby skrócić czas pisania zapytania.  W tego typu aliasach nie zaleca się używania słowa „as”, jednak składnia w SQL Serwer dopuszcza to słowo.

 

select CompanyName, ProductName, d.UnitPrice*Quantity*(1-Discount) as Total  from Customers c inner join Orders o on c.CustomerID=o.CustomerID
inner join [Order Details] d on o.OrderID=d.OrderID
inner join Products p  on d.ProductID=p.ProductID;