Importáljuk be a Dolgozó (dolgozo.txt) és Kifizetés (kifizetes.txt) táblákat egy Fizetés nevű adatbázisba!
Tekintsük most a Dolgozó és Kifizetés táblákat, amelyek az alábbi módon néznek ki:

Torzsszam Nev Szul_hely Szul_ido Fizetes
K1345 Teszt Elek Békéscsaba 1998. 10. 21. 220000
K8531 Mák Virág Békéscsaba 1950. 12. 08. 115000
K3692 Vad Alma Győr 1967. 11. 12. 230000
K7461 Tök Ödön Győr 1954. 04. 22. 310000
K1237 Hű Jenő Szeged 1966. 08. 12. 180000

Kifizetes_ido Kifizetett_ber adoeloleg Torzsszam
2017.01.02. 146300 73700 K1345
2017.01.02 76475 38525 K8531
2017.01.02. 152950 77050 K3692

Egyetlen értéket visszaadó segéd lekérdezés: Ez a legegyszerűbb eset, ugyanis ilyenkor minden a hagyományos módon történik, azzal a különbséggel, hogy a feltételként megadott kifejezésben a belső lekérdezés által szolgáltatott értéket használja fel a rendszer.

  1. Készítsünk olyan lekérdezést, amely a Dolgozó táblából kilistázza azon dolgozók nevét és fizetését, akik az átlag alatt keresnek! Egészítsd ki a lekérdezést, hogy a megfelelő eredményt adja a lekérdezés.

    SELECT Nev, Fizetes FROM Dolgozo WHERE Fizetes < (….)
    Megoldás: SELECT Avg(Fizetes) FROM Dolgozo;

    Egy oszlopot visszaadó segéd lekérdezés: A visszaadott oszlop adatait használja fel. Két lehetőség van:
    • <oszlopkifejezés> [NOT] IN <belső lekérdezés>
      Ennél a típusnál az <oszlopkifejezés> paraméterben megadott kifejezés értékéről fogja eldönteni a rendszer, hogy szerepel-e a belső lekérdezés által előállított oszlop adatai között.
    • [NOT] <oszlopkifejezés> <reláció művelet> ALL|ANY <belső lekérdezés>
      Ennél a típusnál az <oszlopkifejezés> paraméterben megadott kifejezés értékére vonatkozóan azt fogja vizsgálni a rendszer, hogy a megadott reláció művelet teljesül-e a belső lekérdezés által előállított oszlop adataira. Ha az ALL kulcsszót használjuk, a feltétel csak akkor lesz igaz, ha a reláció művelet az oszlop minden elemére teljesül, míg az ANY használatakor elegendő egyetlen elemre teljesülnie. A NOT kulcsszó a feltétel ellentétjét jelenti.

  2. A Kifizetés tábla felhasználásával készítsünk olyan lekérdezést, amely a Dolgozó táblából kilistázza azon dolgozók nevét és törzsszámát, akik számára még nem történt kifizetés! Írd meg a lekérdezést, hogy a megfelelő eredményt adja.

    Az alábbi parancsot ismerjük: ...(SELECT Torzsszam FROM Kifizetes)
    Megoldás: SELECT Nev, Torzsszam FROM Dolgozo WHERE Torzsszam NOT IN (SELECT Torzsszam FROM Kifizetes)

  3. Készítsünk olyan listát, amely a Dolgozó táblából kilistázza azon dolgozók adatait, akik minden Békéscsaba vagy Szegeden született dolgozónál többet keresnek!

    Megoldás:
    SELECT * FROM Dolgozo WHERE Fizetes >
    ALL (SELECT Fizetes FROM Dolgozo WHERE Szul_hely LIKE "Békescsaba" OR Szul_hely LIKE "Szeged")



Utolsó módosítás: 2017. november 27., hétfő, 10:02