Zadanie 16.

Pokaż, ile zamówień obsłużył każdy z pracowników.

Baza: Northwind, Tabele: dbo.Employees, dbo.Orders, Kolumny: EmployeeID, FirstName, LastName, Title, OrderID, Wynik: 9 rows

21

Rozwiązanie

SELECT E.EmployeeID, E.FirstName, E.LastName, E.Title, COUNT(O.OrderID) as Orders FROM dbo.Employees as E JOIN dbo.Orders as O on E.EmployeeID = O.EmployeeID GROUP BY E.EmployeeID, E.FirstName, E.LastName, E.Title

ORDER BY Orders DESC;

[collapse]

Zadanie 14.

Stwórz raport sprzedażowy – oblicz wartość sprzedaży w każdym miesiącu 1997 roku.

Baza: Northwind, Tabele: dbo.Orders, dbo.Order Details, Kolumny: OrderDate, UnitPrice, Quantity, Wynik: 12 rows

19

Rozwiązanie

SELECT YEAR(O.OrderDate) as Rok, MONTH(O.OrderDate) as Miesiac, SUM(OD.UnitPrice * OD.Quantity) as Sprzedaz

FROM dbo.Orders as O

JOIN dbo.[Order Details] as OD on O.OrderID = OD.OrderID

WHERE O.OrderDate >= '19970101' AND  O.OrderDate < '19980101'

GROUP BY YEAR(O.OrderDate), MONTH(O.OrderDate)

ORDER BY Miesiac;

[collapse]

Zadanie 11.

Oblicz, ile było zamówień na towary każdej kategorii w skali każdego roku.

Baza: Northwind, Tabele: dbo.Orders, dbo.Order Details, dbo.Products, dbo.Categories, Kolumny: OrderDate, CategoryName, OrderID, Wynik: 24 rows

16

Rozwiązanie

SELECT YEAR(O.OrderDate) as Rok, C.CategoryName, Count(O.OrderID) as Zamowienia FROM dbo.Orders as O

JOIN dbo.[Order Details] as OD on O.OrderID = OD.OrderID

JOIN dbo.Products as P on P.ProductID = OD.ProductID

JOIN dbo.Categories as C on C.CategoryID = P.CategoryID

GROUP BY C.CategoryName, YEAR(O.OrderDate)

ORDER BY Rok, C.CategoryName;

[collapse]

Zadanie 9.

Oblicz wiek pracowników, wynik posortuj według wieku malejąco.

Baza: Northwind, Tabela: dbo.Employees, Kolumny: FirstName, LastName, BirthDate, Wynik: 9 rows

13

Rozwiązanie

SELECT FirstName, LastName, DATEDIFF(year, BirthDate, CURRENT_TIMESTAMP) as Wiek
FROM dbo.Employees
ORDER BY Wiek DESC;

Można również użyć funkcji GETDATE() zamiast CURRENT_TIMESTAMP

[collapse]