Zadanie
Wyświetl wszystkie numery ID pracowników którzy w okresie od 1 sierpnia 1996 do 15 sierpnia 1996 do których były przypisane jakiekolwiek zamówienia klientów.
Rozwiązanie
Warunki początkowe:
- w tym zadaniu korzystamy z treningowej bazy „Northwind”,
- wszystkie zrzuty ekranowej pochodzą z SQL Server 2008 R2,
Jak przy każdym zadaniu na początku należy określić kilka rzeczy:
-
Jakie dane chcemy wyświetlić, gdzie znajdują się dane których potrzebujemy?
-
oraz określić warunki brzegowe.
Ad.1. Jakie dane chcemy wyświetlić, gdzie znajdują się dane których potrzebujemy?
Dane których potrzebujemy do wyśtwielenia znajdują się w tabeli orders (patrz schemat bazy Nortwind tutaj). Do wyświetlenia potrzebujemy tylko numery ID pracowników, czyli potrzebujemy wyświetlić dane z kolumny EmployeeID.
nasza sekcja SELECT będzie wyglądała następująco:
SELECT EmployeeID
teraz określamy źródło danych, jak już powiedziałem źródłem danych jest tabela Orders, czyli sekcja FROM będzie wyglądała następująco:
FROM Orders
Ad.2. Określ warunki brzegowe.
Do wyświetlenia poprawnie danych potrzebujemy wyświetlić tylko zamówienia które zostały złożone między 1 sierpnia 1996 a 15 sierpnia 1996. W tym celu będziemy musieli analizować kolumnę OrderDate, gdzie przechowywana jest data zamówienia. Jeśli ta data, dla pojedynczego zamówienia, mieści się w zakresie dat 1-15 sierpnia 1996 rekord powinien być wyświetlony.
Nasze warunki brzegowe czyli sekcja WHERE będzie wyglądała tak:
WHERE OrderDate BETWEEN '1996-08-01' AND '1996-08-15'
po złożeniu wszystkiego w całość nasze zapytanie wygląda tak:
SELECT EmployeeID FROM Orders WHERE OrderDate BETWEEN '1996-08-01' AND '1996-08-15'

Uruchamiamy zapytanie i otrzymujemy wynik.

Otrzymaliśmy 13 rekordów. Zwróćmy jednak uwagę, że niektóre numery ID pracowników powtarzają się a my chcemy tylko listę z niepowtarzającymi się numerami.

W tym celu korzystamy z polecenia DISTINCT, które umieszczamy zaraz za słówkiem SELECT.
uruchamiamy zapytanie jeszcze raz i otrzymujemy taki wynik jaki chcieliśmy. Unikalną listę numerów ID pracowników obsługujących zamówienia złożone między 1-15 sierpnia 1996.
