Ćwiczenie 1. Wyświetl pracowników i ich przełożonych.
W tym zadaniu należy wykorzystać, tzw. samozłączenie. Jest to operacja polegająca na połączeniu tabeli z samą sobą przy użyciu dwóch różnych kolumn : EmployeeID oraz ReportsTo. Kolumny, które wykorzystujemy do tego typu złączeń muszą być tego samego typu (liczba – liczba, tekst-tekst, itd.)
Niezbędne jest tutaj użycie aliasów tabeli
select e.lastName+' '+ e.FirstName as Przełożony, m.LastName+' '+ m.FirstName as Przcownik
from Employees e inner join Employees m on e.EmployeeID=m.ReportsTo;
Druga wersja tego zadania:
select e.lastName+' '+ e.FirstName as Przełożony, m.LastName+' '+ m.FirstName as Przcownik
from Employees e right join Employees m on e.EmployeeID=m.ReportsTo;
Ćwiczenie 2. Utwórz widok z zapytania: kto co kupił, ile zapłacił i kiedy.
Widoki powinny być tworzone jako pierwsza instrukcja w edytorze SQL Serwer Management Studio, lub poprzednie instrukcje powinny być „zakomentowane”.
create view vSprzedaz as (
select CompanyName, ProductName, d.UnitPrice*Quantity*(1-Discount) as Total , OrderDate 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
)
;
Uwagi dotyczące widoków:
- Instrukcja SELECT, z którego powstaje widok nie może używać sortowania wierszy (ORDER BY)
- Wszystkie kolumny muszą być nazwane, czyli nie można zostawić wyrażenia obliczeniowego bez aliasu.
- Na widoku nie można użyć poleceń DML : INSERT DELETE, UPDATE. Chyba, że ten widok jest tylko z jednej tabeli i nie użyto żadnej funkcji i wyrażeń obliczeniowych
