Lekérdezések
Választó lekérdezések
Első n/utolsó n elem listázása (TOP)
A korábbiakban láthattunk példát arra, hogyan tudjuk egy halmaz legnagyobb vagy legkisebb elemét lekérdezni.
Azonban sokszor nem csak az első vagy utolsó, legnagyobb vagy legkisebb elemekre vagyunk kíváncsiak. Például egy emberek adatait nyilvántartó adatbázisból szeretnénk lekérdezni az öt legöregebb ember adatait. Ennek a feladatnak a megoldásához a Visszatérés értékét kell megfelelően beállítani. Azonban mindez nem elég, hiszen mint tudjuk, a lekérdezés végeredménye egy halmaz, ami alapértelmezetten nincs rendezve. Így ahhoz, hogy a legöregebb emberek adatait kapjuk meg, a Visszatérés mellett még növekvő sorrendbe kell rendezni az adatokat születési dátum szerint is. Tehát az ilyen típusú feladatokat két lépésben lehet megoldani:
- rendezni kell az adatokat
- be kell állítani a visszatérés értékét.
A Visszatérés értékét a Tervezés fül Lekérdezés beállításai panelen állíthatjuk be.
OKTV 2003/2004. 3. forduló 13. feladat (Jelentkezési adatbázis) G részfeladat
FeladatFeladatunk, hogy megkeressük, melyik a legnagyobb érdeklődésre számot tartó előadás. A lekérdezés eredményében meg kell jelenítenünk az előadás nevét, és azt is, hogy hányan érdeklődnek iránta.
PéldaJavasolt megoldás lépései:
- Készítsünk lekérdezést Tervező nézetben!
- Mivel a legnagyobb érdeklődésre számot tartó előadást keressük, ezért nyilván szükségünk lesz a tElőadás táblára.
- Azt, hogy melyik előadáson kik vesznek részt, a tÉrdeklődés táblában tároljuk, így ezt is adjuk hozzá a lekérdezéshez!
- A lekérdezés eredményében meg kell jeleníteni az előadás nevét és a résztvevők számát. Ezért adjuk hozzá a lekérdezéshez a tElőadás tábla Cím mezőjét, valamint a tÉrdeklődés tábla Résztvevő mezőjét is!
- A következő lépés, hogy meghatározzuk, melyik előadáson hányan vesznek részt. Kapcsoljuk be az Összesítés sort!
- Mivel előadásonként kell számolnunk a résztvevőket, ezért az előadás címéhez állítsuk be az Összesítés sorba a Group by záradékot. Ezzel beállítottuk, hogy cím szerint csoportosítsuk az adatokat.
- Most már csak a résztvevők megszámlálása van hátra. Ezt a Count összesítő függvény segítségével tehetjük meg; állítsuk be a Résztvevő mező Összesítés sorába! Ha most átváltunk Adatlap nézetbe, akkor megkapjuk, hogy az egyes előadásokon hány résztvevő van. Nekünk viszont arra az előadásra van szükségünk, ahol a legtöbben vannak.
- Menjünk vissza Tervező nézetbe, majd a Résztvevő mezőre állítsunk be csökkenő rendezést! Így ha visszaváltunk Adatlap nézetbe, legfelül lesz az az előadás, amire a legtöbben kíváncsiak. Most már csak az kell beállítanunk, hogy csak ezt az egy előadást adja vissza a lekérdezés.
- Ha nem ott állnánk, kattintsuk a szalagon a Tervezés fülre, majd a Lekérdezés beállításai panelen a Visszatérés értékéhez gépeljük be, hogy 1. Ezután váltsunk át Adatlap nézetre. Láthatjuk, hogy most már csak annak az előadásnak a címét és résztvevőit adja vissza a lekérdezés, amelyen a legtöbben részt vesznek.
MegjegyzésNem elég csak egy 1-est begépelni, és félrekattintani, ugyanis ekkor 100-at fog beírni a rendszer a mezőbe (a 100 egy előre definiált érték). Az 1-es begépelése után nyomjunk egy Backspace-t, majd egy Entert. Így a visszatérés értéke valóban 1 lesz.
- Bár a feladat nem köti ki, de a könnyebb értelmezhetőség kedvéért a CountOfRésztvevő mezőt nevezzük át Résztvevők számá-nak. Ezek után a tervező nézetben ezt kell látnunk:
OKTV 2005/2006. 3. forduló 10. feladat (Járatok) C részfeladat
FeladatEbben a feladatban ábécé sorrendben kell kilistáznunk az első három olyan város nevét, ahol 7:00 előtt is megáll valamelyik járat.
PéldaJavasolt megoldás lépései:
- Hozzunk létre egy lekérdezést Tervező nézetben!
- A feladat szövege szerint olyan városok neveit kell kilistáznunk, ahol 7:00 előtt is megáll a busz. Mivel ezek az adatok a Menetrend táblában rendelkezésünkre állnak (Település és Érkezés mezők), ezért csak ezt az egy táblát adjuk hozzá a lekérdezéshez.
- Jelenítsük meg a Település és az Érkezés mezőket a lekérdezésben!
- Mivel a városokat ábécé sorrendben kell megjeleníteni, ezért állítsunk be növekvő rendezést a Település mezőre!
- Csak azokat a településeket kell megjeleníteni, ahol 7:00 előtt állnak meg a buszok. Az Érkezés mező feltétel sorába gépeljük be ezt a feltételt: <#7:00#. Mivel csak a települések neveit kell megjelenítenünk, ezért szedjük ki a pipát az Érkezés mező Megjelenítés sorából!
- Ha most nézetet váltunk, láthatjuk az összes olyan települést, ahol 7 óra előtt megállnak buszok. Egyben azt is láthatjuk, hogy egy település neve többször is megjelenik, eltérő időpontokkal. Ennek az az oka, hogy több buszjárat is megállhat ugyanazon a településen, akár különböző időpontban is. Viszont a lekérdezés végeredményében nem szeretnénk ugyanazt a települést többször megjeleníteni.
- Kattintsunk a szalagon a Tulajdonságlap gombra, majd a megjelenő panelen állítsuk be Igenre az Egyedi értékek tulajdonságot! Így ha Adatlap nézetre váltunk, most már minden település csak egyszer jelenik meg.
- Nem maradt más hátra, minthogy beállítsuk azt, hogy csak az első három település neve jelenjen meg. Kattintsunk a szalagon a Tervezés fülre, majd itt a Lekérdezés beállításai panelen a Visszatérés értékéhez gépeljük be, hogy 3, majd nyomjunk egy Entert! Ekkor a következő képet kell látnunk:
- Zárjuk be a lekérdezést, és mentsük a megadott néven!
FeladatTovábbi, hasonló módon megoldható feladatok:
Vissza a tartalomjegyzékhez