15 Lekérdezések: Adatok szűrése és elemzése
15.1 Bevezetés
Most, hogy két táblánk van (Kutatók és Látogatások), és össze vannak kapcsolva, tanuljuk meg, hogyan kérdezzük le az adatokat!
A lekérdezés (query) egy olyan eszköz, amely:
- Adatokat szűr (pl. “csak az ELTE-s kutatók”)
- Adatokat rendez (pl. “dátum szerint növekvő sorrendben”)
- Adatokat csoportosít (pl. “hány látogatás volt havonta”)
- Több táblából egyesít adatokat
Fontos: A lekérdezés nem tárol adatokat! Csak “kérdést tesz fel” a tábláknak, és megjeleníti az eredményt.
15.2 Egyszerű lekérdezés: Ki látogatott márciusban?
Kezdjünk egy egyszerű példával!
15.2.1 1. lépés: Lekérdezés-készítő indítása
- Létrehozás fül → Lekérdezéstervezés gomb
Megjelenik a Lekérdezés-készítő ablak, felül a Tábla megjelenítése ablak.
15.2.2 2. lépés: Táblák kiválasztása
Mely táblákból szeretnénk adatokat?
- Kell a Látogatások tábla (dátum, téma)
- Kell a Kutatók tábla is (név, intézmény)
- Tábla megjelenítése ablakban:
- Dupla kattintás:
tbl_Kutatók - Dupla kattintás:
tbl_Látogatások
- Dupla kattintás:
- Bezárás
Most látjuk a két táblát az ablak felső részében, egy vonallal összekötve (a kapcsolat!):
┌─────────────────┐ ┌──────────────────┐
│ tbl_Kutatók │ │ tbl_Látogatások │
├─────────────────┤ ├──────────────────┤
│🔑KutatóID ───────1────<∞─ KutatóID │
│ Név │ │ LatDátum │
│ Email │ │ CélKutatás │
│ Intézmény │ │ Megjegyzés │
└─────────────────┘ └──────────────────┘
15.2.3 3. lépés: Mezők kiválasztása
Alsó részben egy rácsos táblázat látható. Ide húzzuk be a mezőket, amelyeket meg szeretnénk jeleníteni:
15.2.3.1 Név mező
- Húzzuk a
tbl_Kutatóktáblából aNévmezőt lefelé a rács első oszlopába
Vagy:
- Dupla kattintás a
Névmezőre → automatikusan bekerül a rácsba
15.2.3.2 További mezők
Ugyanígy adjuk hozzá:
Intézmény(tbl_Kutatók)LatDátum(tbl_Látogatások)CélKutatás(tbl_Látogatások)
A rács most így néz ki:
┌─────────┬───────────┬──────────┬────────────┐
│ Mező: │ Név │ Intézmény│ LatDátum │ CélKutatás │
├─────────┼───────────┼──────────┼────────────┤
│ Tábla: │tbl_Kutatók│tbl_Kutatók│tbl_Látogatások│tbl_Látogatások│
│ Rendezés│ │ │ │ │
│ Megj.: │ ☑ │ ☑ │ ☑ │ ☑ │
│ Feltétel│ │ │ │ │
└─────────┴───────────┴──────────┴────────────┘
Sorok jelentése:
- Mező: Melyik mezőt jelenítjük meg
- Tábla: Melyik táblából származik
- Rendezés: Növekvő/csökkenő sorrend
- Megjelenítés: Megjelenik-e az eredményben (☑ = igen)
- Feltétel: Szűrési feltétel
15.2.4 4. lépés: Szűrési feltétel megadása
Most állítsuk be, hogy csak a márciusi látogatásokat szeretnénk látni!
- Kattintsunk a
LatDátumoszlop Feltétel sorába - Írjuk be:
Between #2024-03-01# And #2024-03-31#
Dátumok Access-ben: Dátumokat
#jelek közé írunk! Pl.#2024-03-15#
Más szűrési lehetőségek:
- Pontosan 2024. március 10.:
#2024-03-10# - Március 1-től kezdve:
>=#2024-03-01# - Március 31-ig:
<=#2024-03-31#
15.2.5 5. lépés: Rendezés beállítása
Rendezzük a találatokat dátum szerint növekvő sorrendben:
- Kattintsunk a
LatDátumoszlop Rendezés sorába - Válasszuk: Növekvő (Ascending)
15.2.6 6. lépés: Lekérdezés futtatása
Nézzük meg az eredményt!
- Tervezés fül → Futtatás gomb (piros felkiáltójel !)
Vagy:
- Nézet gomb → Adatlap nézet
Most látjuk az eredményt:
┌────────────────┬──────────────┬────────────┬───────────────────────┐
│ Név │ Intézmény │ LatDátum │ CélKutatás │
├────────────────┼──────────────┼────────────┼───────────────────────┤
│ Kovács Anna │ ELTE BTK │ 2024.03.10 │ Rákóczi-szabadságharc │
│ Nagy Péter │ Független │ 2024.03.12 │ Színháztörténet │
│ Kovács Anna │ ELTE BTK │ 2024.03.15 │ Rákóczi-szabadságharc │
└────────────────┴──────────────┴────────────┴───────────────────────┘
Látjuk, hogy márciusban 3 látogatás volt!
15.3 Több feltétel: ELTE-s kutatók látogatásai
Nézzünk egy bonyolultabb példát: kik jártak az ELTE-ről?
15.3.1 1. lépés: Új lekérdezés
- Létrehozás → Lekérdezéstervezés
- Adjuk hozzá:
tbl_Kutatókéstbl_Látogatások - Bezárás
15.3.2 2. lépés: Mezők kiválasztása
Húzzuk be:
Név(tbl_Kutatók)Intézmény(tbl_Kutatók)LatDátum(tbl_Látogatások)CélKutatás(tbl_Látogatások)
15.4 ÉS (AND) feltétel: ELTE-s kutatók márciusban
Mit tegyünk, ha két feltétel is teljesüljön egyszerre?
Példa: ELTE-s kutatók ÉS márciusi dátum
15.4.1 Megoldás: Ugyanabban a Feltétel sorban
┌─────────┬───────────┬──────────┬────────────┐
│ Mező: │ Intézmény │ LatDátum │ │
├─────────┼───────────┼──────────┼────────────┤
│Feltétel:│"ELTE BTK" │Between #2024-03-01# And #2024-03-31#│
└─────────┴───────────┴──────────┴────────────┘
Eredmény: Csak azok a látogatások, ahol MIND az intézmény “ELTE BTK” ÉS a dátum március hónapban van.
15.5 VAGY (OR) feltétel: ELTE vagy PTE kutatók
Mit tegyünk, ha bármelyik feltétel teljesülhet?
Példa: ELTE-s kutatók VAGY PTE-s kutatók
15.6 Helyettesítő karakterek (Wildcard)
Mit tegyünk, ha nem tudjuk pontosan a szöveget?
15.6.1 Csillag (*) – bármilyen karaktersorozat
Példa: Minden kutató, akinek neve “Kovács”-sal kezdődik:
- Feltétel:
"Kovács*"
Találatok: Kovács Anna, Kovács Péter, Kovács-Nagy Mária
15.6.2 Kérdőjel (?) – pontosan egy karakter
Példa: Email cím, ahol a domain “elte.hu” vagy “ppke.hu”:
- Feltétel:
"*@??ke.hu"
15.6.3 Példák levéltári használatra
- Minden “Nemzeti” kezdetű intézmény:
"Nemzeti*" - Email cím tartalmaz “(gmail?)”:
"*@gmail.com" - Kutatási téma tartalmazza a “színház” szót:
"*színház*"
15.7 Számított mezők
Készíthetünk olyan mezőt is, amely számítás eredményét mutatja!
15.7.1 Példa: Hány napja volt a látogatás?
Számítsuk ki, hogy hány napja volt egy látogatás a mai naphoz képest!
15.7.1.1 1. lépés: Új lekérdezés
- Létrehozás → Lekérdezéstervezés
- Táblák:
tbl_Kutatók,tbl_Látogatások
15.7.1.3 3. lépés: Számított mező hozzáadása
Kattintsunk egy üres oszlop Mező sorába, és írjuk be:
NapokÓta: Date()-[LatDátum]
Magyarázat:
NapokÓta:– Az új mező neveDate()– Mai dátum[LatDátum]– Látogatás dátuma mezőre hivatkozunk-– Kivonás
15.7.1.4 4. lépés: Futtatás
Futtatás → Látjuk, hogy hány napja volt minden látogatás!
┌────────────────┬────────────┬────────────┐
│ Név │ LatDátum │ NapokÓta │
├────────────────┼────────────┼────────────┤
│ Kovács Anna │ 2024.03.10 │ 5 │
│ Nagy Péter │ 2024.03.12 │ 3 │
└────────────────┴────────────┴────────────┘
15.8 Csoportosítás: Hányszor járt minden kutató?
Most egy kicsit bonyolultabb lekérdezést készítünk: összesítjük, hogy minden kutató hányszor látogatott!
15.8.2 2. lépés: Mezők
Húzzuk be:
Név(tbl_Kutatók)Intézmény(tbl_Kutatók)LatID(tbl_Látogatások) – Ezt fogjuk számolni!
15.8.3 3. lépés: Összesen sor megjelenítése
- Tervezés fül → Összesen gomb (Σ szimbólum)
Megjelenik egy új sor a rácsban: Összesen:
┌─────────┬────────┬───────────┬───────┐
│ Mező: │ Név │ Intézmény │ LatID │
├─────────┼────────┼───────────┼───────┤
│ Tábla: │tbl_... │tbl_... │tbl_...│
│ Összesen│Csoportosítás│Csoportosítás│Darabszám│
└─────────┴────────┴───────────┴───────┘
15.8.4 4. lépés: Összesítés beállítása
- Név és Intézmény →
Csoportosítás(Group By) – már be van állítva - LatID → Kattintsunk az Összesen sorába, válasszuk: Darabszám (Count)
Mit jelent ez? - Csoportosítunk kutatónként (név szerint) - Megszámoljuk, hogy minden csoportban hány látogatás (LatID) van
15.8.5 5. lépés: Mező átnevezése
Nevezzük át a LatID mezőt valami érthetőbbre:
- Kattintsunk a
LatIDoszlop Mező sorába - Írjuk elé:
LátogatásSzám:
Így lesz: LátogatásSzám: LatID
15.8.6 6. lépés: Futtatás
Futtatás → Eredmény:
┌────────────────┬──────────────┬────────────────┐
│ Név │ Intézmény │ LátogatásSzám │
├────────────────┼──────────────┼────────────────┤
│ Kovács Anna │ ELTE BTK │ 3 │
│ Nagy Péter │ Független │ 1 │
│ Szabó Mária │ PTE BTK │ 1 │
└────────────────┴──────────────┴────────────────┘
Látjuk, hogy Kovács Anna háromszor járt, a többiek egyszer!
15.9 További összesítő függvények
A Darabszám mellett más függvények is vannak:
| Függvény | Mit csinál? | Példa |
|---|---|---|
| Sum (Összeg) | Összeadja az értékeket | Összes kikölcsönzött iratok száma |
| Avg (Átlag) | Átlagot számol | Átlagos látogatási idő |
| Min (Minimum) | Legkisebb érték | Legrégebbi látogatás dátuma |
| Max (Maximum) | Legnagyobb érték | Legutóbbi látogatás dátuma |
| Count (Darabszám) | Megszámolja a rekordokat | Hány látogatás volt? |
15.10 Gyakorlati feladatok
15.10.1 Feladat 1: Áprilisi látogatások
Készítsünk lekérdezést, amely az áprilisi látogatásokat mutatja!
Mezők: Név, Intézmény, LatDátum, CélKutatás
Feltétel: LatDátum között 2024-04-01 és 2024-04-30
Mentés: qry_Aprilisi_latogatasok
Megoldás
- Létrehozás → Lekérdezéstervezés
- Táblák: tbl_Kutatók, tbl_Látogatások
- Mezők behúzása: Név, Intézmény, LatDátum, CélKutatás
- LatDátum Feltétel:
Between #2024-04-01# And #2024-04-30# - Futtatás
- Ctrl+S →
qry_Aprilisi_latogatasok
15.10.2 Feladat 2: Független kutatók
Készítsünk lekérdezést, amely a független kutatókat és látogatásaikat mutatja!
Mezők: Név, Email, LatDátum, CélKutatás
Feltétel: Intézmény = “Független kutató”
Mentés: qry_Fuggetlen_kutatok
Megoldás
- Létrehozás → Lekérdezéstervezés
- Táblák: tbl_Kutatók, tbl_Látogatások
- Mezők: Név, Email, LatDátum, CélKutatás
- Intézmény Feltétel:
"Független kutató" - Futtatás
- Ctrl+S →
qry_Fuggetlen_kutatok
15.10.3 Feladat 3: Leggyakoribb kutatási témák
Készítsünk összesítő lekérdezést, amely megmutatja, hogy melyik kutatási téma hányszor fordult elő!
Mezők: CélKutatás (csoportosítás), Darabszám
Rendezés: Darabszám szerint csökkenő
Mentés: qry_Temak_gyakorisaga
Megoldás
- Létrehozás → Lekérdezéstervezés
- Tábla: tbl_Látogatások
- Mezők: CélKutatás, LatID
- Tervezés → Összesen gomb
- CélKutatás → Csoportosítás
- LatID → Darabszám, átnevezés:
TémaSzám: LatID - TémaSzám Rendezés: Csökkenő
- Futtatás
- Ctrl+S →
qry_Temak_gyakorisaga
15.10.4 Feladat 4: Legutóbbi látogatás kutatónként
Készítsünk lekérdezést, amely minden kutatóhoz megmutatja a legutóbbi látogatása dátumát!
Mezők: Név, Intézmény, Max(LatDátum)
Összesítés: Max függvény
Mentés: qry_Legutolso_latogatas
Megoldás
- Létrehozás → Lekérdezéstervezés
- Táblák: tbl_Kutatók, tbl_Látogatások
- Mezők: Név, Intézmény, LatDátum
- Tervezés → Összesen
- Név, Intézmény → Csoportosítás
- LatDátum → Maximum, átnevezés:
LegutolsóLátogatás: LatDátum - Futtatás
- Ctrl+S →
qry_Legutolso_latogatas