#### Maak een lijst van leerlingen en de boetes die ze hebben betaald (alleen degenen die echt een boete hebben gehad, dus als er in de kolom boete 0,00 staat moet die niet worden afgedrukt)
```sql
SELECT
LEERLINGEN.VOORNAAM,
LEERLINGEN.ACHTERNAAM,
UITLENINGEN.BOETE
FROM
LEERLINGEN
JOIN
UITLENINGEN ON LEERLINGEN.LLNR = UITLENINGEN.LLNR
WHERE
UITLENINGEN.BOETE;
```
#### Welke boeken zijn er van schrijvers uit de negentiende eeuw (geef de titel, de voornaam en achternaam en geboortedatum van de auteur)
```sql
SELECT
BOEKEN.TITEL,
AUTEURS.VOORNAAM,
AUTEURS.ACHTERNAAM,
AUTEURS.GEB_JAAR
FROM
AUTEURS
JOIN
BOEKEN ON AUTEURS.AUTEURNR = BOEKEN.AUTEURNR
WHERE
AUTEURS.GEB_JAAR >= 1801
AND AUTEURS.GEB_JAAR <= 1900;
```
#### Van welke auteurs zijn er boeken in reparatie ? (geef de titel en de status van het boek, de voornaam en achternaam van de auteur)
```sql
SELECT
BOEKEN.TITEL,
EXEMPLAREN.STATUS,
AUTEURS.VOORNAAM,
AUTEURS.ACHTERNAAM
FROM
AUTEURS
JOIN
BOEKEN ON AUTEURS.AUTEURNR = BOEKEN.AUTEURNR
JOIN
EXEMPLAREN ON BOEKEN.BOEKNR = EXEMPLAREN.BOEKNR
WHERE
EXEMPLAREN.STATUS = 'in reparatie';
```
#### Maak een lijstje van de boeken uit de categorie Nederlands, die zijn uitgeleend aan leerlingen uit de zesde klas (geef de titel van het boek en de categorie, en de voornaam en achternaam en klas van de leerling)
```sql
SELECT
BOEKEN.TITEL,
BOEKEN.RUBRIEK,
LEERLINGEN.VOORNAAM,
LEERLINGEN.ACHTERNAAM,
LEERLINGEN.KLAS
FROM
BOEKEN
JOIN
UITLENINGEN ON BOEKEN.BOEKNR = UITLENINGEN.BOEKNR
JOIN
LEERLINGEN ON UITLENINGEN.LLNR = LEERLINGEN.LLNR
WHERE
BOEKEN.RUBRIEK = 'Nederlands'
AND LEERLINGEN.KLAS LIKE '6%';
```
## Onderdeel zeven
#### Maak een lijstje van de plaatsen waar minstens tien leerlingen wonen (geef de plaatsnaam en het aantal leerlingen uit die plaats)
```sql
SELECT
PLAATS, COUNT(*) AS AANTAL_LEERLINGEN
FROM
LEERLINGEN
GROUP BY PLAATS
HAVING COUNT(*) >= 10;
```
#### Maak een lijstje van de auteurs, waarvan meer dan vijf boektitels aanwezig zijn (geef de voornaam, achternaam, en aantal boektitels)
```sql
SELECT
AUTEURS.VOORNAAM,
AUTEURS.ACHTERNAAM,
COUNT(BOEKEN.BOEKNR) AS AANTAL_BOEKTITELS
FROM
AUTEURS
JOIN
BOEKEN ON AUTEURS.AUTEURNR = BOEKEN.AUTEURNR
GROUP BY AUTEURS.AUTEURNR , AUTEURS.VOORNAAM , AUTEURS.ACHTERNAAM
HAVING COUNT(BOEKEN.BOEKNR) > 5;
```
#### Maak een lijstje van de boeken, die meer dan tien keer zijn uitgeleend (geef de titel en het aantal keren uitgeleend)
#### Maak een lijstje met alle openstaande uitleningen (geef titel boek, naam auteur, naam en klas van leerling). Ga er daarbij vanuit dat het vandaag 3 maart 2006 is.
```sql
SELECT
BOEKEN.TITEL,
AUTEURS.ACHTERNAAM,
AUTEURS.VOORNAAM,
LEERLINGEN.ACHTERNAAM,
LEERLINGEN.VOORNAAM,
LEERLINGEN.KLAS
FROM
UITLENINGEN
JOIN
BOEKEN ON UITLENINGEN.BOEKNR = BOEKEN.BOEKNR
JOIN
AUTEURS ON BOEKEN.AUTEURNR = AUTEURS.AUTEURNR
JOIN
LEERLINGEN ON UITLENINGEN.LLNR = LEERLINGEN.LLNR
WHERE
UITLENINGEN.DATUM_TERUG IS NULL
```
#### Er komt iemand in de bibliotheek die het boek Giph! van Ronald Giphart wil lenen. Ga met een query na of er een uitleenbaar exemplaar is dat aan hem uitgeleend kan worden.
```sql
SELECT
*
FROM
BOEKEN
JOIN
EXEMPLAREN ON BOEKEN.BOEKNR = EXEMPLAREN.BOEKNR
WHERE
BOEKEN.TITEL = 'Giph!'
AND BOEKEN.AUTEURNR = (SELECT
AUTEURNR
FROM
AUTEURS
WHERE
ACHTERNAAM = 'Giphart'
AND VOORNAAM = 'Ronald')
AND EXEMPLAREN.UITLEENBAAR = 'J';
```
#### Maak een lijst van alle uitgeleende boeken waarvan de uitleentermijn verstreken is. Ga er daarbij vanuit dat het vandaag 3 maart 2006 is, en dat de uitleentermijn drie weken is.
```sql
```
#### Een leerling brengt het boek Figuranten van Arnon Grunberg, met boeknummer 66, terug op 3 maart 2006. Schrijf een query die nagaat of er een reservering voor dat boek is en welke leerling in dat geval die reservering gedaan heeft.
```sql
SELECT
LEERLINGEN.VOORNAAM, LEERLINGEN.ACHTERNAAM
FROM
RESERVERINGEN
JOIN
LEERLINGEN ON RESERVERINGEN.LLNR = LEERLINGEN.LLNR
WHERE
RESERVERINGEN.BOEKNR = 66
and RESERVERINGEN.STATUS = "open"
```
#### Maak een lijstje van boeken, met titel en auteur, waarin per boek is aangegeven hoe vaak het is uitgeleend.
```sql
SELECT
BOEKEN.TITEL,
AUTEURS.VOORNAAM,
AUTEURS.ACHTERNAAM,
COUNT(UITLENINGEN.BOEKNR) AS AANTAL_UITLENINGEN
FROM
BOEKEN
JOIN
AUTEURS ON BOEKEN.AUTEURNR = AUTEURS.AUTEURNR
LEFT JOIN
UITLENINGEN ON BOEKEN.BOEKNR = UITLENINGEN.BOEKNR
GROUP BY BOEKEN.BOEKNR , BOEKEN.TITEL , AUTEURS.VOORNAAM , AUTEURS.ACHTERNAAM;
```
#### Maak een lijstje van de boeken, die nog nooit zijn uitgeleend (geef alleen de titels)
```sql
SELECT
BOEKEN.TITEL
FROM
BOEKEN
LEFT JOIN
UITLENINGEN ON BOEKEN.BOEKNR = UITLENINGEN.BOEKNR
WHERE
UITLENINGEN.BOEKNR IS NULL;
```
#### Welke leerlingen hebben nog nooit een nederlands boek geleend (geef voornaam en achternaam)
```sql
SELECT DISTINCT
LEERLINGEN.VOORNAAM, LEERLINGEN.ACHTERNAAM
FROM
LEERLINGEN
LEFT JOIN
UITLENINGEN ON LEERLINGEN.LLNR = UITLENINGEN.LLNR
LEFT JOIN
BOEKEN ON UITLENINGEN.BOEKNR = BOEKEN.BOEKNR
WHERE
BOEKEN.RUBRIEK != 'Nederlands'
```
#### Welke leerlingen hebben in totaal meer dan € 5,- aan boete betaald (geef voornaam en achternaam en de totale hoeveelheid boete, denk er om dat de leerlingen vaker dan één keer boete kunnen krijgen!)
```sql
SELECT
LEERLINGEN.VOORNAAM,
LEERLINGEN.ACHTERNAAM,
SUM(UITLENINGEN.BOETE) AS TOTAAL_BOETE
FROM
LEERLINGEN
JOIN
UITLENINGEN ON LEERLINGEN.LLNR = UITLENINGEN.LLNR
GROUP BY LEERLINGEN.LLNR , LEERLINGEN.VOORNAAM , LEERLINGEN.ACHTERNAAM