/* --- Onderwerp 3, Opdracht 1a */ SELECT * FROM AUTEURS; /* --- Onderwerp 3, Opdracht 1b */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, STRAAT, HUISNUMMER, POSTCODE, PLAATS FROM LEERLINGEN; /* --- Onderwerp 3, Opdracht 2a */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM FROM LEERLINGEN ORDER BY KLAS, ACHTERNAAM; /* --- Onderwerp 3, Opdracht 2b */ SELECT VOORLETTERS, TUSSENVOEGSEL, ACHTERNAAM, GEB_JAAR FROM AUTEURS ORDER BY GEB_JAAR, ACHTERNAAM; /* --- Onderwerp 3, Opdracht 2c */ SELECT * FROM BOEKEN ORDER BY RUBRIEK, TITEL; /* --- Onderwerp 3, Opdracht 3a */ SELECT DISTINCT BOEKNR FROM UITLENINGEN ORDER BY BOEKNR; /* --- Onderwerp 3, Opdracht 3b */ SELECT DISTINCT KLAS FROM LEERLINGEN ORDER BY KLAS; /* --- Onderwerp 4, Opdracht 1a */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM FROM LEERLINGEN WHERE ACHTERNAAM="Dijkstra"; /* --- Onderwerp 4, Opdracht 1b */ SELECT VOORLETTERS, TUSSENVOEGSEL, ACHTERNAAM, GEB_JAAR FROM AUTEURS WHERE GEB_JAAR > 1900; /* --- Onderwerp 4, Opdracht 1c */ SELECT TITEL, RUBRIEK FROM BOEKEN WHERE RUBRIEK <> "nederlands"; /* --- Onderwerp 4, Opdracht 1d */ SELECT AUTEURNR, ACHTERNAAM FROM AUTEURS WHERE ACHTERNAAM LIKE "*Reve*"; /* --- Onderwerp 4, Opdracht 1d, vervolg */ SELECT TITEL FROM BOEKEN WHERE AUTEURNR = 62; /* --- Onderwerp 4, Opdracht 1e */ SELECT AUTEURNR, ACHTERNAAM FROM AUTEURS WHERE ACHTERNAAM LIKE "*Maugham"; /* --- Onderwerp 4, Opdracht 2a */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, TELEFOON FROM LEERLINGEN WHERE ACHTERNAAM LIKE "Frederi*"; /* --- Onderwerp 4, Opdracht 2b */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, TELEFOON FROM LEERLINGEN WHERE VOORNAAM LIKE "*an*"; /* --- Onderwerp 4, Opdracht 2c */ SELECT TITEL, RUBRIEK FROM BOEKEN WHERE TITEL LIKE "*vos*"; /* --- Onderwerp 5, Opdracht 1a */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, STRAAT, PLAATS, KLAS FROM LEERLINGEN WHERE PLAATS="Utrecht" AND STRAAT="Julianaweg"; /* --- Onderwerp 5, Opdracht 1b */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, GEB_DATUM, KLAS FROM LEERLINGEN WHERE GEB_DATUM>#1-jan-1993# AND KLAS LIKE "6*"; /* --- Onderwerp 5, Opdracht 1c */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, PLAATS FROM LEERLINGEN WHERE PLAATS="Bunnik" OR PLAATS="Schalkwijk"; /* --- Onderwerp 5, Opdracht 2a */ SELECT * FROM RESERVERINGEN WHERE DATUM_BESCHIKBAAR IS NULL; /* --- Onderwerp 5, Opdracht 2b */ SELECT * FROM LEERLINGEN WHERE NOT (PLAATS="Utrecht"); /* --- Onderwerp 5, Opdracht 2c */ SELECT * FROM LEERLINGEN WHERE NOT (KLAS LIKE "4?"); /* --- Onderwerp 5, Opdracht 2d */ SELECT * FROM LEERLINGEN WHERE NOT (TUSSENVOEGSEL IS NULL); /* --- Onderwerp 5, Opdracht 3c */ SELECT * FROM LEERLINGEN WHERE (KLAS="5b" AND PLAATS="Utrecht") OR PLAATS="Bunnik" ORDER BY KLAS; /* --- Onderwerp 5, Opdracht 3d */ SELECT * FROM LEERLINGEN WHERE KLAS="5b" AND (PLAATS="Utrecht" OR PLAATS="Bunnik") ORDER BY KLAS; /* --- Onderwerp 5, Opdracht 3e */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, GESLACHT, KLAS, STRAAT, HUISNUMMER, POSTCODE, PLAATS, TELEFOON FROM LEERLINGEN WHERE (GESLACHT="v" AND KLAS="4b") OR (KLAS LIKE "4?" AND POSTCODE LIKE "3523*"); /* --- Onderwerp 5, Opdracht 4a */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, STRAAT, HUISNUMMER FROM LEERLINGEN WHERE POSTCODE LIKE "352*" AND (POSTCODE LIKE "*B" OR POSTCODE LIKE "*P" OR POSTCODE LIKE "*R"); /* --- Onderwerp 5, Opdracht 4b1 */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, POSTCODE, GEB_DATUM FROM LEERLINGEN WHERE ACHTERNAAM="Bakker" AND TUSSENVOEGSEL IS NULL AND VOORNAAM="Jantine"; /* --- Onderwerp 5, Opdracht 4b2 */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS, POSTCODE FROM LEERLINGEN WHERE GESLACHT="m" AND GEB_DATUM<#28-jul-1993# AND POSTCODE LIKE "352*" AND (GEB_DATUM>=#28-jul-1992# OR (GEB_DATUM>=#28-jul-1991# AND POSTCODE LIKE "3523*") ); /* --- Onderwerp 6, Opdracht 1a */ SELECT MAX(BOETE) FROM UITLENINGEN; /* --- Onderwerp 6, Opdracht 1b */ SELECT AVG(BOETE) FROM UITLENINGEN WHERE NOT (BOETE IS NULL); /* --- Onderwerp 6, Opdracht 1c */ SELECT MIN(GEB_DATUM) FROM LEERLINGEN; /* --- Onderwerp 6, Opdracht 1d */ SELECT COUNT(*) FROM EXEMPLAREN WHERE STATUS = "in reparatie"; /* --- Onderwerp 6, Opdracht 2a */ SELECT PLAATS, COUNT(*) FROM LEERLINGEN GROUP BY PLAATS; /* --- Onderwerp 6, Opdracht 2b */ SELECT GESLACHT, COUNT(*) FROM LEERLINGEN GROUP BY GESLACHT; /* --- Onderwerp 6, Opdracht 2c */ SELECT KLAS, GESLACHT, COUNT(*) FROM LEERLINGEN GROUP BY KLAS, GESLACHT; /* --- Onderwerp 6, Opdracht 2d */ SELECT RUBRIEK, COUNT(*) FROM BOEKEN GROUP BY RUBRIEK; /* --- Onderwerp 7, Opdracht 1a */ SELECT * FROM LEERLINGEN WHERE GEB_DATUM = ( SELECT MIN(GEB_DATUM) FROM LEERLINGEN ); /* --- Onderwerp 7, Opdracht 1c1 */ SELECT BOEKNR, EXNR FROM EXEMPLAREN WHERE STATUS = "in reparatie" AND BOEKNR IN ( SELECT BOEKNR FROM BOEKEN WHERE RUBRIEK = "nederlands" ); /* --- Onderwerp 7, Opdracht 1c2 */ SELECT BOEKNR, TITEL FROM BOEKEN WHERE RUBRIEK = "nederlands" AND BOEKNR IN ( SELECT BOEKNR FROM EXEMPLAREN WHERE STATUS = "in reparatie" ); /* --- Onderwerp 7, Opdracht 1d */ SELECT VOORLETTERS, TUSSENVOEGSEL, ACHTERNAAM FROM AUTEURS WHERE AUTEURNR IN ( SELECT AUTEURNR FROM BOEKEN WHERE BOEKNR IN ( SELECT BOEKNR FROM RESERVERINGEN ) ); /* --- Onderwerp 7, Opdracht 1e */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS FROM LEERLINGEN WHERE LLNR IN ( SELECT LLNR FROM UITLENINGEN WHERE BOEKNR IN ( SELECT BOEKNR FROM BOEKEN WHERE TITEL = "Au Pair" AND DATUM_TERUG IS NULL ) ); /* --- Onderwerp 7, Opdracht 2a */ SELECT * FROM BOEKEN WHERE BOEKNR NOT IN ( SELECT BOEKNR FROM UITLENINGEN ); /* --- Onderwerp 7, Opdracht 2b */ SELECT * FROM AUTEURS WHERE AUTEURNR NOT IN ( SELECT AUTEURNR FROM BOEKEN ); /* --- Onderwerp 8, Opdracht 1a */ SELECT VOORLETTERS, VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, TITEL FROM AUTEURS, BOEKEN WHERE AUTEURS.AUTEURNR=BOEKEN.AUTEURNR; /* --- Onderwerp 8, Opdracht 1b */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, DATUM_TERUG, BOETE FROM LEERLINGEN, UITLENINGEN WHERE LEERLINGEN.LLNR=UITLENINGEN.LLNR AND BOETE>0 ORDER BY LEERLINGEN.LLNR, DATUM_TERUG; /* --- Onderwerp 8, Opdracht 1c */ SELECT TITEL, PUB_JAAR, VOORLETTERS, TUSSENVOEGSEL, ACHTERNAAM, GEB_JAAR, STERF_JAAR FROM AUTEURS, BOEKEN WHERE AUTEURS.AUTEURNR=BOEKEN.AUTEURNR AND PUB_JAAR<1900 AND PUB_JAAR>=1800; /* --- Onderwerp 8, Opdracht 1d */ SELECT VOORLETTERS, TUSSENVOEGSEL, ACHTERNAAM, TITEL, EXNR FROM AUTEURS, BOEKEN, EXEMPLAREN WHERE AUTEURS.AUTEURNR=BOEKEN.AUTEURNR AND BOEKEN.BOEKNR=EXEMPLAREN.BOEKNR AND STATUS="in reparatie"; /* --- Onderwerp 8, Opdracht 1e */ SELECT L.VOORNAAM, L.TUSSENVOEGSEL, L.ACHTERNAAM, L.KLAS, U.DATUM_UIT, A.VOORLETTERS, A.TUSSENVOEGSEL, A.ACHTERNAAM, B.TITEL FROM LEERLINGEN AS L, UITLENINGEN AS U, EXEMPLAREN AS E, BOEKEN AS B, AUTEURS AS A WHERE L.LLNR=U.LLNR AND U.BOEKNR=E.BOEKNR AND U.EXNR=E.EXNR AND E.BOEKNR=B.BOEKNR AND B.AUTEURNR=A.AUTEURNR AND L.KLAS LIKE "6*" AND B.RUBRIEK="nederlands" AND U.DATUM_TERUG IS NULL ORDER BY L.LLNR; /* --- Onderwerp 9, Opdracht 1, , met dialoogvenster voor invoer auteurnaam en titel*/ SELECT VOORLETTERS & " " & TUSSENVOEGSEL & " " & ACHTERNAAM AS AUTEUR, B.TITEL, E.BOEKNR, E.EXNR, E.STATUS FROM AUTEURS AS A, BOEKEN AS B, EXEMPLAREN AS E WHERE A.AUTEURNR=B.AUTEURNR AND B.BOEKNR=E.BOEKNR AND A.ACHTERNAAM LIKE "*" & Geef_auteurnaam & "*" AND B.TITEL LIKE "*" & Geef_titel & "*"; /* --- Onderwerp 9, Opdracht 2a */ SELECT L.VOORNAAM, L.TUSSENVOEGSEL, L.ACHTERNAAM, L.KLAS, A.VOORLETTERS, A.TUSSENVOEGSEL, A.ACHTERNAAM, B.TITEL, U.DATUM_UIT FROM LEERLINGEN AS L, UITLENINGEN AS U, EXEMPLAREN AS E, BOEKEN AS B, AUTEURS AS A WHERE L.LLNR=U.LLNR AND U.BOEKNR=E.BOEKNR AND U.EXNR=E.EXNR AND E.BOEKNR=B.BOEKNR AND B.AUTEURNR=A.AUTEURNR AND DATUM_TERUG IS NULL; /* --- Onderwerp 9, Opdracht 2b */ SELECT L.VOORNAAM, L.TUSSENVOEGSEL, L.ACHTERNAAM, L.KLAS, A.VOORLETTERS, A.TUSSENVOEGSEL, A.ACHTERNAAM, B.TITEL, R.DATUM_RESERVERING FROM LEERLINGEN AS L, RESERVERINGEN AS R, BOEKEN AS B, AUTEURS AS A WHERE L.LLNR=R.LLNR AND R.BOEKNR=B.BOEKNR AND B.AUTEURNR=A.AUTEURNR AND R.STATUS='open'; /* --- Onderwerp 9, Opdracht 2c */ SELECT L.VOORNAAM, L.TUSSENVOEGSEL, L.ACHTERNAAM, L.KLAS, E.BOEKNR, E.EXNR, A.VOORLETTERS, A.TUSSENVOEGSEL, A.ACHTERNAAM, B.TITEL FROM LEERLINGEN AS L, RESERVERINGEN AS R, EXEMPLAREN AS E, BOEKEN AS B, AUTEURS AS A WHERE L.LLNR=R.LLNR AND R.BOEKNR=B.BOEKNR AND E.BOEKNR=B.BOEKNR AND B.AUTEURNR=A.AUTEURNR AND E.STATUS="thuis" AND R.STATUS="open"; /* --- Onderwerp 9, Opdracht 3 */ SELECT L.VOORNAAM, L.TUSSENVOEGSEL, L.ACHTERNAAM, L.KLAS, U.DATUM_UIT, A.VOORLETTERS, A.TUSSENVOEGSEL, A.ACHTERNAAM, B.TITEL FROM LEERLINGEN AS L, UITLENINGEN AS U, EXEMPLAREN AS E, BOEKEN AS B, AUTEURS AS A WHERE L.LLNR=U.LLNR AND U.BOEKNR=E.BOEKNR AND U.EXNR=E.EXNR AND E.BOEKNR=B.BOEKNR AND B.AUTEURNR=A.AUTEURNR AND DATUM_UIT<#6-feb-2009# AND DATUM_TERUG IS NULL; /* --- Onderwerp 9, Opdracht 4, met dialoogvenster voor invoer boeknummer */ SELECT R.LLNR, L.VOORNAAM, L.TUSSENVOEGSEL, L.ACHTERNAAM, B.TITEL, R.DATUM_RESERVERING FROM LEERLINGEN AS L, BOEKEN AS B, RESERVERINGEN AS R WHERE R.LLNR=L.LLNR AND B.BOEKNR = R.BOEKNR AND STATUS = "open" AND R.BOEKNR = Geef_boeknummer AND R.DATUM_RESERVERING = ( SELECT MIN(DATUM_RESERVERING) FROM RESERVERINGEN R2 WHERE R2.BOEKNR=R.BOEKNR AND STATUS = "open" ); /* --- Onderwerp 9, Opdracht 5, gaat ervan uit dat bij opgehaalde reserveringen de status is veranderd in 'opgehaald'.*/ SELECT * FROM RESERVERINGEN AS R WHERE STATUS = 'beschikbaar' AND R.DATUM_BESCHIKBAAR<=#19-feb-2009#; /* --- Onderwerp 9, Opdracht 5, controleert of er geen bijbehorende uitlening is. Moelijk! */ SELECT * FROM RESERVERINGEN AS R WHERE STATUS = "beschikbaar" AND NOT EXISTS ( SELECT * FROM UITLENINGEN AS U WHERE U.LLNR=R.LLNR AND U.BOEKNR=R.BOEKNR AND U.DATUM_UIT>=R.DATUM_BESCHIKBAAR ) AND R.DATUM_BESCHIKBAAR<=#19-feb-2009#; /* --- Onderwerp 9, Opdracht 6a */ SELECT B.BOEKNR, B.TITEL, A.VOORLETTERS, A.TUSSENVOEGSEL, A.ACHTERNAAM, COUNT(*) AS AANTAL_EX FROM EXEMPLAREN AS E, BOEKEN AS B, AUTEURS AS A WHERE E.BOEKNR=B.BOEKNR AND B.AUTEURNR=A.AUTEURNR AND UITLEENBAAR="j" GROUP BY B.BOEKNR, B.TITEL, A.VOORLETTERS, A.TUSSENVOEGSEL, A.ACHTERNAAM; /* --- Onderwerp 9, Opdracht 6b */ SELECT B.BOEKNR, B.TITEL, A.VOORLETTERS, A.TUSSENVOEGSEL, A.ACHTERNAAM, COUNT(*) AS AANTAL_UITL FROM EXEMPLAREN AS E, BOEKEN AS B, AUTEURS AS A, UITLENINGEN AS U WHERE E.BOEKNR=B.BOEKNR AND B.AUTEURNR=A.AUTEURNR AND U.BOEKNR=E.BOEKNR AND U.EXNR=E.EXNR AND U.DATUM_UIT>#1-sep-2007# GROUP BY B.BOEKNR, B.TITEL, A.VOORLETTERS, A.TUSSENVOEGSEL, A.ACHTERNAAM; /* --- Onderwerp 9, Opdracht 6c */ SELECT AE.*, AU.AANTAL_UITL, AANTAL_UITL/AANTAL_EX AS UITL_PER_EX FROM Query9_6aAantalExPerBoek AS AE, Query9_6bAantalUitlPerBoek AS AU WHERE AE.BOEKNR=AU.BOEKNR ORDER BY AANTAL_UITL/AANTAL_EX DESC; /* --- Verdieping, Opdracht 1a */ SELECT PLAATS, COUNT(*) FROM LEERLINGEN GROUP BY PLAATS HAVING COUNT(*)>10; /* --- Verdieping, Opdracht 1b */ SELECT VOORLETTERS, TUSSENVOEGSEL, ACHTERNAAM, COUNT(TITEL) FROM AUTEURS, BOEKEN WHERE AUTEURS.AUTEURNR=BOEKEN.AUTEURNR GROUP BY VOORLETTERS, TUSSENVOEGSEL, ACHTERNAAM HAVING COUNT(*) >= 5; /* --- Verdieping, Opdracht 1c */ SELECT TITEL, COUNT(UITLENINGEN.BOEKNR) FROM BOEKEN, UITLENINGEN WHERE BOEKEN.BOEKNR=UITLENINGEN.BOEKNR GROUP BY TITEL HAVING COUNT(UITLENINGEN.BOEKNR)>10; /* --- Verdieping, Opdracht 2a */ SELECT TITEL FROM BOEKEN WHERE NOT EXISTS ( SELECT BOEKNR FROM UITLENINGEN WHERE BOEKEN.BOEKNR = UITLENINGEN.BOEKNR ); /* --- Verdieping, Opdracht 2a2 */ SELECT TITEL FROM BOEKEN WHERE NOT BOEKNR IN ( SELECT BOEKNR FROM UITLENINGEN ); /* --- Verdieping, Opdracht 2b */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS FROM LEERLINGEN WHERE NOT EXISTS ( SELECT * FROM UITLENINGEN, BOEKEN WHERE LEERLINGEN.LLNR = UITLENINGEN.LLNR AND BOEKEN.BOEKNR = UITLENINGEN.BOEKNR AND RUBRIEK = "nederlands" ); /* --- Verdieping, Opdracht 2b2 */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS FROM LEERLINGEN WHERE NOT LLNR IN ( SELECT LLNR FROM UITLENINGEN, BOEKEN WHERE BOEKEN.BOEKNR = UITLENINGEN.BOEKNR AND RUBRIEK = "nederlands" ); /* --- Verdieping, Opdracht 3a */ SELECT VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS, SUM(BOETE) AS TOTAALBOETE FROM LEERLINGEN, UITLENINGEN WHERE LEERLINGEN.LLNR=UITLENINGEN.LLNR GROUP BY VOORNAAM, TUSSENVOEGSEL, ACHTERNAAM, KLAS ORDER BY ACHTERNAAM, VOORNAAM; /* --- Verdieping, Opdracht 3b */ SELECT * FROM QueryV_3aBoetelijst WHERE TOTAALBOETE>25 ORDER BY TOTAALBOETE DESC; /* --- Verdieping, Opdracht 3c, met dialoogvenster voor invoer status */ SELECT BOEKEN.BOEKNR, EXNR, VOORLETTERS & " " & TUSSENVOEGSEL & " " & ACHTERNAAM AS AUTEUR, TITEL, STATUS FROM BOEKEN, EXEMPLAREN, AUTEURS WHERE BOEKEN.BOEKNR=EXEMPLAREN.BOEKNR AND BOEKEN.AUTEURNR=AUTEURS.AUTEURNR AND STATUS LIKE Welke_status & "*";