Tagi: case

Zadanie 23.

Policz, ile zamówień obsłużył każdy z pracowników; wyniki opisz jako przedziały: mniej niż 50, między 50 a 100, więcej niż 100.

Baza: Northwind, Tabela: dbo.Orders, Kolumny: EmployeeID, OrderID, Wynik: 9 rows

31

Rozwiązanie

SELECT EmployeeID,
CASE
WHEN COUNT(OrderID) < 50 THEN 'Mniej niż 50'
WHEN COUNT(OrderID) BETWEEN 50 AND 100 THEN 'Między 50 a 100'
WHEN COUNT(OrderID) > 100 THEN 'Więcej niż 100'
END AS Zamowienia
FROM dbo.Orders
GROUP BY EmployeeID
ORDER BY EmployeeID;

[collapse]

Zadanie 22.

Dla pracowników o id równym 1, 2, 3, 6, 8 oraz 9 ustal tytuły grzecznościowe (pan lub pani). Jeśli tytuł grzecznościowy jest inny, zostaje oryginalny. Imię i nazwisko powinno znaleźć się w jednej kolumnie.

Baza: Northwind, Tabela: dbo.Employees, Kolumny: EmployeeID, TitleOfCourtesy, FirstName, LastName, Wynik: 6 rows

30

Rozwiązanie

SELECT EmployeeID,

CASE TitleOfCourtesy

WHEN 'Mr.' THEN 'Pan'

WHEN 'Ms.' THEN 'Pani'

ELSE TitleOfCourtesy

END AS Tytuł,

(FirstName +' '+ LastName) as Pracownik

FROM dbo.Employees
WHERE EmployeeID IN(1, 2, 3, 6, 8, 9)
ORDER BY EmployeeID;

[collapse]
Recent Entries »