Praca z danymi

W poprzednim e‑materiale (Zapytania do baz danych, etap IPLLNymN5mZapytania 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:

RwJGbqTO6yz3Y

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:

R1VMhy1KeelEs

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:

R2LOSHzWls02s

Za pomocą okienka Dodawanie tabel dodajemy wszystkie potrzebne do zaprojektowania kwerendy tabele bazy danych:

RFctXWIjACvuD

Z poszczególnych tabel wybieramy pola, które mają utworzyć widok finalnego arkusza danych:

RsAxtH8hCM51z

Uruchamiamy zaprojektowaną kwerendę za pomocą przycisku Uruchom:

R1G5CIuXzP1ag

Otrzymujemy następujący arkusz danych:

1
R1C889oP5nRjT

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:

R1N82qSiYnuKQ

Dodajemy tabele:

R1328WqmYJHlc

Wybieramy pola, na podstawie których zostanie wygenerowany wynikowy arkusz danych:

RIIZ3f9sDM8CV

Uruchamiamy zaprojektowaną kwerendę:

R6aQQAosU7Tax

W rezultacie otrzymujemy następujący arkusz danych:

1
Rpn0YXxxxKpAt

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

Ważne!

Mogłoby się zdarzyć, że dwóch lub więcej klientów posiada identyczne imię i nazwisko:

RacmkdnRs3pra

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:

ReMETGw4DlJyB

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:

R1ZyzTtIq1UUx

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):

Rb8u3D73Pwrfe

Po uruchomieniu kwerendy otrzymujemy następujący wynik:

RZBT4njEM8j7V

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 grupowaniagrupowaniegrupowania oraz funkcji agregującychfunkcja agregującafunkcji agregujących. W widoku projektu uruchamiamy przycisk Sumy:

R1YW8LSZwkQyN

Następnie odsłaniamy rekord Suma:

RxYHIdwA6NOw1

W kolumnie LiczbaSztuk wybieramy funkcję Suma:

R1Ynn7OGWcSHA

Otrzymujemy następujące podsumowanie:

RgyTuV3tjm4gK

Dodatkowo, możemy ograniczyć liczbę wyświetlanych rekordów do określonej wartości, np. 5:

RkbciubrFGGv9

Ostatecznie uzyskujemy listę sześciu zamiast pięciu najaktywniejszych klientów, ponieważ piątą pozycję w rankingu zajmuje ex aequo dwoje klientów:

R1WLTDgfpXymd

Podobny efekt w programie LibreOffice Base uzyskamy, rozpoczynając od projektu kwerendy:

R1e8YpXnqceEl

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:

R1baLGSa6cdA8

Ustalając ograniczenie do pięciu rekordów wynikowych oraz sortowanie malejące w kolumnie LiczbaSztuk, uzyskujemy następujący rezultat:

R1BOJzkPat08d

Słownik

funkcja agregująca
funkcja agregująca

funkcja (np. suma, średnia, zlicz, maksimum, minimum) umożliwiająca podsumowanie wartości dla kolumn zgrupowanych

grupowanie
grupowanie

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