Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

Tehetséggondozás az informatikában – Adatbázis-kezelés / Lekérdezések /Paraméteres lekérdezések

Lekérdezések

Választó lekérdezések

Paraméteres lekérdezések

Az eddigi lekérdezéseknél láthattuk, hogy mindegyik egy konkrét problémát, kérdést válaszolt meg. Eddigi ismereteink alapján, ha egy emberek adatait tartalmazó adatbázisból szeretnénk kigyűjteni a budapestiek adatait, akkor a megfelelő mezők hozzáadása után a város mező feltételébe azt írnánk be, hogy „Budapest”, és ezzel meg is volnánk. De ha egy másik város lakóinak adataira lenne szükségünk, akkor vagy új lekérdezést készítenénk, vagy a meglévőben módosítanánk a városra vonatkozó feltételt.

A paraméteres lekérdezések használatával nem kell egy kész lekérdezést módosítani, és nem is kell sok lekérdezést gyártani ugyanarra az alapproblémára. Ilyen típusú lekérdezések esetén futtatáskor kell megadni azokat az értékeket, amelyek szűkíteni fogják a lekérdezés végeredményét. Tehát nem előre adjuk meg, hogy mi kerüljön a Feltétel sorba a QBE rácson, hanem futás közben kérjük be a felhasználótól.

Lássunk erre egy példát!

OKTV 2007/2008. 2. forduló 8. feladat (Kávé) E részfeladat

Feladat

Ebben a részfeladatban egy olyan paraméteres lekérdezést kell készíteni, ami minden Robusta kávéról megadja, hogy mennyi az ára Euróban a megadott napi árfolyamon. A megadandó paraméter annak a napnak a dátuma, aminek az árfolyamával számolni kell. Ha a megadott napra nincs ismert árfolyam, akkor a paraméterként megadott dátum előtti legutolsó ismert jegyzési nap Euró árfolyamát kell alkalmazni. Ezen kívül az Euróban listázott árak két tizedesjegy pontossággal és Euró pénznem formátumban kell megjeleníteni.

Példa

Javasolt megoldás:

Megoldási terv:

A feladatot érdemes most is két részre bontani. Először készítsünk egy segédlekérdezést, melyben meghatározzuk az adott napra érvényes Euró árfolyamot, majd egy másik lekérdezésben ezt felhasználva megjelenítjük a szükséges adatokat.

Javasolt megoldás lépései:

  • Hozzunk létre egy lekérdezést Tervező nézetben!
  • Ebben a lekérdezésben fogjuk meghatározni az adott napra érvényes Euró árfolyamot. Így a lekérdezésben csak a tArfolyam táblára lesz szükségünk.
  • Vegyük fel mindhárom mezőt a lekérdezésbe (Kod, Datum, ArfolyamHUF)!
  • Mivel csak Euró árfolyammal szeretnénk dolgozni, ezért a Kod mező Feltétel sorába írjuk be, hogy „EUR”! Viszont mivel nem szeretnénk kiíratni a Kod mező tartalmát, ezért kapcsoljuk ki a mező megjelenítését!
  • Azt a napot, aminek az árfolyamával a későbbiekben számolnunk kell, a felhasználónak kell mindig megadnia. Kattintsunk a tArfolyam tábla melletti részre jobb egérgombbal, majd a legördülő menüből válasszuk ki a Paraméterek menüpontot!
  • A megnyíló ablakban vegyünk fel egy új paramétert, melynek neve legyen Árfolyam_dátuma, típusa pedig Dátum/Idő. Ha ezzel megvagyok, kattintsunk az Ok gombra!
A kép (nagyobb változata) külön ablakban is megtekinthető.37_full.jpg37. ábra: Az Árfolyam_dátuma nevű paraméter elkészítése
  • Miután elkészítettük a paramétert, kattintsunk a Datum mező Feltétel sorába jobb egérgombbal, és válasszuk ki a Szerkesztés menüpontot! Ezzel beléptünk a Kifejezésszerkesztőbe.
  • Most gondoskodunk arról, hogy ha olyan dátumot adunk meg, aminek nem ismerjük az árfolyamát, akkor a legutolsó ismert dátum árfolyamával dolgozzon a rendszer. A Kifejezéselemeknél kattintsunk a Lekérdezés1 nevű objektumra! Így a Kifejezésértékeknél megjelenik az előbb létrehozott Árfolyam_dátuma nevű paraméter. Kattintsunk erre duplán, hogy megjelenjen a szerkesztő dobozban! Most már csak annyit kell tennünk, hogy biztosítjuk a fenti feltételt; gépeljük be a paraméter elé azt, hogy <=. Most ezt kell látnunk a Kifejezésszerkesztőben:
A kép (nagyobb változata) külön ablakban is megtekinthető.38_full.jpg38. ábra: A Datum mezőre vonatkozó feltétel elkészítése
  • Ha átváltunk Adatlap nézetre, és futtatjuk a lekérdezést, láthatjuk, hogy a paraméterként megadott dátum előtti összes dátumot és árfolyamot megjeleníti a lekérdezés.
Megjegyzés

Ha megnézzük a tArfolyam tábla tartalmát, láthatjuk, hogy csak 2007.06.11. és 2007.07.27. között tartalmaz adatokat. Erre ügyeljünk, mikor megadjuk a dátum paramétert.

  • Hogy mindig csak egyet jelenítsen meg, állítsuk a Visszatérés értékét 1-re. Ez azonban még nem lesz elég, hiszen így már csak egy rekordot ad vissza a lekérdezés, de nem azzal a dátummal, amit megadtunk neki. Hogy az ahhoz a dátumhoz tartozó rekorddal térjen vissza a lekérdezés, állítsunk be a Datum mezőre csökkenő rendezést. Erre azért van szükség, hogy meglévő dátum esetén azt adja vissza, ismeretlen dátum esetén pedig a legutolsó ismertet. Ha mindent jól csináltunk, akkor most ezt kell látnunk:
A kép (nagyobb változata) külön ablakban is megtekinthető.39_full.jpg39. ábra: A Kávé című feladat E részfeladatának segédlekérdezése tervező nézetben
  • Zárjuk be a lekérdezést, és mentsük E_robusta_segéd néven!
  • Hozzunk létre egy új lekérdezést Tervező nézetben.
  • A feladat csak az Euróra átváltott árakra kíváncsi, viszont minket segít a lekérdezés készítése közben még néhány plusz adat. Épp ezért adjuk hozzá a lekérdezéshez a tBabkave, a tFajta, a tSzarmazas és a tPorkoles táblákat, valamint az előbb létrehozott E_robusta_segéd lekérdezést!
  • Mindenképpen szűkítenünk kell a lekérdezés eredményét a Robusta kávéra, így adjuk hozzá a lekérdezéshez a tFajtai tábla Nev mezőjét! A mezőt nevezzük el Fajtának, a feltétel sorába pedig írjuk be, hogy „Robusta”!
  • Tegyük láthatóvá, hogy honnan származnak ezek a kávék: jelenítsük meg a tSzarmazas tábla Nev mezőjét Származás néven!
  • Lássuk azt is, hogy milyen módon pörkölték ezeket a kávékat: jelenítsük meg a tPorkoles tábla Nev mezőjét Pörkölés néven!
  • Utolsó lépésként pedig számítsuk ki az Euróban mért árát a kávéknak. Kattintsunk jobb egérgombbal a Pörkölés melletti üres oszlop Mező sorába, majd lépjünk be a Kifejezésszerkesztőbe! Először is nevezzük el ezt a számított mezőt EuróÁrnak, majd tegyünk utána kettőspontot (:)! Az Euróban mért árát úgy tudjuk kiszámítani a kávéknak, hogy elosztjuk a Ft-ban mért árát az aktuális napi árfolyammal. Ezt úgy tudjuk megtenni, hogy a tBabkave Ar mezőjét elosztjuk a korábban már létrehozott E_robusta_segéd lekérdezés ArfolyamHUF mezőjével.
A kép (nagyobb változata) külön ablakban is megtekinthető.40_full.jpg40. ábra: A kávéárak Euróban történő meghatározása
  • Zárjuk be az ablakot, és nézzük meg munkánk gyümölcsét! Minden rendben van, kivéve, hogy a rendszer nem €-ban jeleníti meg az árakat, és hogy nem csak két tizedesjegy pontossággal.
  • Kattintsunk a szalagon a Tulajdonságlap gombra, majd kattintsunk rá az EuróÁr mező nevére! A Tulajdonságlapon a Formátumhoz írjuk be, hogy Euró, majd nyomjunk egy Entert, és futtassuk a lekérdezést! Most már minden úgy jelenik meg, ahogy azt szerettük volna. A Tervező nézetben ezt kell látnunk:
A kép (nagyobb változata) külön ablakban is megtekinthető.41_full.jpg41. ábra: A Kávé című feladat E részfeladatának megoldása tervező nézetben
  • Mentsük a lekérdezést E_robusta néven, és zárjuk be!
Feladat

További, hasonló módon megoldható feladatok:

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.
Készült az "Országos koordinációval a pedagógusképzés megújításáért” című TÁMOP-4.1.2.B.2-13/1-2013-0007 pályázat keretében.

A tananyag az ELTESCORM keretrendszerrel készült