Przeczytaj
Praca z danymi
W poprzednim e‑materiale (Zapytania do baz danych, etap IZapytania do baz danych, etap I) projektowaliśmy kwerendy wykorzystujące dane pochodzące z pojedynczej tabeli. Korzystaliśmy z możliwości jednego narzędzia do tworzenia kwerend, jakim jest tzw. kreator kwerend. W tym e‑materiale popracujemy z danymi umieszczonymi w kilku tabelach oraz wykorzystamy możliwości tworzenia kwerend w tzw. widoku projektu.
Przypomnijmy sobie strukturę bazy danych:
Zapytania do bazy danych
Kto, ile i jakich produktów zamówił w czerwcu?
Aby dowiedzieć się, jakich zakupów dokonywali poszczególni klienci w określonym czasie, potrzebujemy zaprojektować kwerendę odwołującą do: tabeli klienci, tabeli zamowienia, tabeli pozycje_zamowienia oraz tabeli produkty. Są to wszystkie tabele powiązane relacjami w naszej bazie danych.
Opisaną kwerendę w programie Microsoft Access utworzymy, korzystając z tzw. Projektu kwerendy
dostępnego w zakładce Tworzenie
:
Aby zaprojektować kwerendę, musimy wskazać tabele, z których będą pochodziły pola do tworzonego widoku arkusza danych. Skorzystamy z funkcjonalności dostępnych w okienku Dodawanie tabel
:
Za pomocą okienka Dodawanie tabel
dodajemy wszystkie potrzebne do zaprojektowania kwerendy tabele bazy danych:
Z poszczególnych tabel wybieramy pola, które mają utworzyć widok finalnego arkusza danych:
Uruchamiamy zaprojektowaną kwerendę za pomocą przycisku Uruchom
:
Otrzymujemy następujący arkusz danych:
Imie | Nazwisko | DataZamowienia | Nazwa | Pojemnosc | CenaZaSztuke | LiczbaSztuk |
---|---|---|---|---|---|---|
Monika | Adamowska | 07.06.2021 | miód faceliowy | 0,9 | 70,00 zł | 5 |
Monika | Adamowska | 07.06.2021 | miód nawłociowy | 0,7 | 50,00 zł | 1 |
Monika | Adamowska | 07.06.2021 | miód wielokwiatowy | 0,5 | 30,00 zł | 4 |
Monika | Adamowska | 07.06.2021 | miód wielokwiatowy | 0,9 | 45,00 zł | 1 |
Adam | Bednarski | 08.06.2021 | miód nawłociowy | 0,9 | 60,00 zł | 2 |
Adam | Bednarski | 08.06.2021 | miód faceliowy | 0,5 | 40,00 zł | 1 |
Adam | Bednarski | 08.06.2021 | miód rzepakowy | 0,5 | 30,00 zł | 2 |
Adam | Bednarski | 08.06.2021 | miód akacjowy | 0,7 | 40,00 zł | 6 |
Agnieszka | Nowakowska | 08.06.2021 | miód akacjowy | 0,7 | 40,00 zł | 3 |
Agnieszka | Nowakowska | 08.06.2021 | miód akacjowy | 0,9 | 55,00 zł | 1 |
Agnieszka | Nowakowska | 08.06.2021 | miód wielokwiatowy | 0,5 | 30,00 zł | 2 |
Elżbieta | Zielińska | 08.06.2021 | miód akacjowy | 0,9 | 55,00 zł | 3 |
Elżbieta | Zielińska | 08.06.2021 | miód faceliowy | 0,5 | 40,00 zł | 5 |
Elżbieta | Zielińska | 08.06.2021 | miód rzepakowy | 0,9 | 45,00 zł | 6 |
Elżbieta | Zielińska | 08.06.2021 | miód lipowy | 0,3 | 25,00 zł | 2 |
Elżbieta | Zielińska | 08.06.2021 | miód wielokwiatowy | 0,9 | 45,00 zł | 2 |
Mirosław | Kwiatkowski | 10.06.2021 | miód faceliowy | 0,9 | 70,00 zł | 2 |
Mirosław | Kwiatkowski | 10.06.2021 | miód akacjowy | 0,9 | 55,00 zł | 3 |
W programie LibreOffice Base kwerendę utworzymy również poprzez tzw. projekt:
Dodajemy tabele:
Wybieramy pola, na podstawie których zostanie wygenerowany wynikowy arkusz danych:
Uruchamiamy zaprojektowaną kwerendę:
W rezultacie otrzymujemy następujący arkusz danych:
Imie | Nazwisko | DataZamowienia | Nazwa | Pojemnosc | CenaZaSztuke | LiczbaSztuk |
---|---|---|---|---|---|---|
Monika | Adamowska | 2021‑06‑07 | miód faceliowy | 0,9 | 70,00 zł | 5 |
Monika | Adamowska | 2021‑06‑07 | miód nawłociowy | 0,7 | 50,00 zł | 1 |
Monika | Adamowska | 2021‑06‑07 | miód wielokwiatowy | 0,5 | 30,00 zł | 4 |
Monika | Adamowska | 2021‑06‑07 | miód wielokwiatowy | 0,9 | 45,00 zł | 1 |
Adam | Bednarski | 2021‑06‑08 | miód nawłociowy | 0,9 | 60,00 zł | 2 |
Adam | Bednarski | 2021‑06‑08 | miód faceliowy | 0,5 | 40,00 zł | 1 |
Adam | Bednarski | 2021‑06‑08 | miód rzepakowy | 0,5 | 30,00 zł | 2 |
Adam | Bednarski | 2021‑06‑08 | miód akacjowy | 0,7 | 40,00 zł | 6 |
Agnieszka | Nowakowska | 2021‑06‑08 | miód akacjowy | 0,7 | 40,00 zł | 3 |
Agnieszka | Nowakowska | 2021‑06‑08 | miód akacjowy | 0,9 | 55,00 zł | 1 |
Agnieszka | Nowakowska | 2021‑06‑08 | miód wielokwiatowy | 0,5 | 30,00 zł | 2 |
Elżbieta | Zielińska | 2021‑06‑08 | miód akacjowy | 0,9 | 55,00 zł | 3 |
Elżbieta | Zielińska | 2021‑06‑08 | miód faceliowy | 0,5 | 40,00 zł | 5 |
Elżbieta | Zielińska | 2021‑06‑08 | miód rzepakowy | 0,9 | 45,00 zł | 6 |
Elżbieta | Zielińska | 2021‑06‑08 | miód lipowy | 0,3 | 25,00 zł | 2 |
Elżbieta | Zielińska | 2021‑06‑08 | miód wielokwiatowy | 0,9 | 45,00 zł | 2 |
Mirosław | Kwiatkowski | 2021‑06‑10 | miód faceliowy | 0,9 | 70,00 zł | 2 |
Mirosław | Kwiatkowski | 2021‑06‑10 | miód akacjowy | 0,9 | 55,00 zł | 3 |
Mogłoby się zdarzyć, że dwóch lub więcej klientów posiada identyczne imię i nazwisko:
Dlatego projektując kwerendę, powinniśmy (w sytuacjach, w których nam na tym zależy) uwzględnić również unikalny identyfikator, czyli pole IdKlienta:
Na zdjęciu przedstawiono zestawienie sprzedaży w czerwcu. Tak się składa, że wśród klientów, którzy dokonali zakupów w analizowanym miesiącu, nie było dwóch lub więcej o tym samym imieniu i nazwisku. Nie powinniśmy jednak zakładać, że taka sytuacja będzie zawsze. Z umieszczonego poniżej zestawienia uwzględniającego – oprócz czerwca – również maj wynika, że w bazie danych występują oraz dokonują zakupów dwie klientki o imieniu Agnieszka i nazwisku Nowakowska, na co wskazują różne wartości w polu IdKlienta:
Top 5 najaktywniejszych klientów
Dla najaktywniejszych klientów właściciele sklepu przygotowują specjalne kupony rabatowe. W celu wyselekcjonowania klientów, którzy zakupili najwięcej słoików miodu, projektujemy następującą kwerendę (Microsoft Access):
Po uruchomieniu kwerendy otrzymujemy następujący wynik:
Taki wynik jest jednak niewystarczający. Ci sami klienci występują w wielu miejscach, natomiast potrzebujemy zbiorczego zestawienia, w którym każdy klient wystąpiłby tylko raz, a obok wyświetlona zostałaby liczba oznaczająca sumę zakupionych sztuk słoików z miodem przez danego klienta.
Taki efekt możemy uzyskać poprzez zastosowanie grupowaniagrupowania oraz funkcji agregującychfunkcji agregujących. W widoku projektu uruchamiamy przycisk Sumy
:
Następnie odsłaniamy rekord Suma:
W kolumnie LiczbaSztuk wybieramy funkcję Suma
:
Otrzymujemy następujące podsumowanie:
Dodatkowo, możemy ograniczyć liczbę wyświetlanych rekordów do określonej wartości, np. 5:
Ostatecznie uzyskujemy listę sześciu zamiast pięciu najaktywniejszych klientów, ponieważ piątą pozycję w rankingu zajmuje ex aequo dwoje klientów:
Podobny efekt w programie LibreOffice Base uzyskamy, rozpoczynając od projektu kwerendy:
Następnie za pomocą przycisku Funkcje
odsłaniamy wiersz Funkcja, w którym dla kolumny Imie, kolumny Nazwisko oraz kolumny LiczbaSztuk wybieramy odpowiednio: funkcję Grupuj
, funkcję Grupuj
oraz funkcję Suma
:
Ustalając ograniczenie do pięciu rekordów wynikowych oraz sortowanie malejące w kolumnie LiczbaSztuk, uzyskujemy następujący rezultat:
Słownik
funkcja (np. suma, średnia, zlicz, maksimum, minimum) umożliwiająca podsumowanie wartości dla kolumn zgrupowanych
rodzaj operacji wykonywanej w bazie danych, która umożliwia konsolidowanie rekordów w tabeli wg wartości występujących w określonej kolumnie (lub kolumnach) i uzyskiwanie podsumowań do tych grup rekordów