Ć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 i 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;