OK ik weet niet of ik zoiets dergelijks mag vragen, maar ik moet een SQL opdracht bedenken inc. uitwerkingen (voor school)! Nu heb ik het volgende bedacht... kunnen jullie er even naar kijken??
In een gegevensbank wordt de verkoop van huizen geregistreerd. Een huis kan bij verschillende makelaars in de verkoop staan.
Telkens als een potentiële koper bij één van de makelaars een bod doet op een huis dat deze in de verkoop heeft, wordt dit geregistreerd. Een koper kan meer dan één bod doen.
De gegevensstructuur met als record-typen KOPER, MAKELAAR, BOD, HUIS en GEMEENTE met relatie record-typen:

Attributen voor de bestaande identiteiten:
MAKELAAR (mk_id, mk_naam, gm_naam)
HUIS (hs_id, hs_naam, gm_naam, verkocht, tekoop)
KOPER (ko_id, ko_naam, bd_naam, bod_waarde)
BOD (bd_id, bd_naam, vraag_prijs, verk_prijs)
GEMEENTE (gm_id, gm_naam, bd_naam)
Opdrachten:
1) Welke makelaars hebben het huis Zonnenvloed in de verkoop staan, waarbij de vraag_prijs hoger is dan 150.000?
2) Op welke huizen is nog geen bod gedaan?
3) Welke makelaar(s) gaan over huis Zeezicht of huis Meerkade?
4) Welke makelaars hebben bij de gemeente een unieke naam?
5) Selecteer de makelaars in de gemeente Heerlen met meer dan dan 6 huizen!
6) Geef de huizen waar een koper kans op maakt (bod_waarde >= vraag_prijs) of waarvan de makelaar "Huis&Co" heet, maak gebruik van UNION!
7) Verhoog elk bod van makelaar "Gezellig-wonen" met 10%
8 ) Geef een melding voor: De kolom hs_id in de tabel HUIS moet zijn ingevult, tevens uniek! (je checkt dus even die tabel)
9) Wat is het gemiddelde, het laagste en het hoogste bod wat er is gedaan op het huis Heidebloem?
10) Geef de naam van de huizen die zijn verkocht onder makelaar "Piet, of die nog te koop staan onder makelaar "Jan"!
In een gegevensbank wordt de verkoop van huizen geregistreerd. Een huis kan bij verschillende makelaars in de verkoop staan.
Telkens als een potentiële koper bij één van de makelaars een bod doet op een huis dat deze in de verkoop heeft, wordt dit geregistreerd. Een koper kan meer dan één bod doen.
De gegevensstructuur met als record-typen KOPER, MAKELAAR, BOD, HUIS en GEMEENTE met relatie record-typen:

Attributen voor de bestaande identiteiten:
MAKELAAR (mk_id, mk_naam, gm_naam)
HUIS (hs_id, hs_naam, gm_naam, verkocht, tekoop)
KOPER (ko_id, ko_naam, bd_naam, bod_waarde)
BOD (bd_id, bd_naam, vraag_prijs, verk_prijs)
GEMEENTE (gm_id, gm_naam, bd_naam)
Opdrachten:
1) Welke makelaars hebben het huis Zonnenvloed in de verkoop staan, waarbij de vraag_prijs hoger is dan 150.000?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| SELECT mk_naam
FROM MAKELAARS
WHERE GM_naam IN
( SELECT gm_naam, bd_naam
FROM GEMEENTE
WHERE gm_naam IN
( SELECT gm_naam
FROM HUIS
WHERE hs_naam = "Zonnenvloed"
AND tekoop = "j"
AND verkocht = "n")
AND bd_naam IN
( SELECT bd_naam
FROM BOD
WHERE vraag_prijs > 150000 )); |
2) Op welke huizen is nog geen bod gedaan?
code:
1
2
3
4
5
6
7
8
9
10
11
| SELECT hs_naam, gm_naam
FROM HUIS H
WHERE NOT EXISTS
( SELECT *
FROM GEMEENTE
WHERE gm_naam = H.gm_naam
AND H.gm_naam IN
( SELECT *
FROM HUIS
WHERE tekoop = "n"
AND verkocht = "n"); |
3) Welke makelaar(s) gaan over huis Zeezicht of huis Meerkade?
code:
1
2
3
4
5
6
7
8
9
10
| SELECT mk_naam
FROM MAKELAAR
WHERE gm_naam IN
( SELECT gm_naam
FROM GEMEENTE
WHERE gm_naam =
( SELECT gm_naam
FROM HUIS
WHERE hs_naam = "Zeezicht"
OR hs_naam = "Meerkade")); |
4) Welke makelaars hebben bij de gemeente een unieke naam?
code:
1
2
3
4
5
6
7
| SELECT mk_naam
FROM MAKELAAR M1
WHERE M1.mk_naam NOT IN
( SELECT mk_naam
FROM MAKELAAR M2
WHERE gm_naam = M1.gm_naam
AND mk_id <> M1.mk_id); |
5) Selecteer de makelaars in de gemeente Heerlen met meer dan dan 6 huizen!
code:
1
2
3
4
5
6
7
8
9
10
11
| SELECT mk_naam
FROM MAKELAAR
WHERE gm_naam IN
( SELECT gm_naam
FROM GEMEENTE
WHERE gm_naam =
( SELECT gm_naam, hs_naam
FROM HUIS
WHERE gm_naam = "Heerlen"
GROUP BY hs_naam
HAVING COUNT(*) > 6)); |
6) Geef de huizen waar een koper kans op maakt (bod_waarde >= vraag_prijs) of waarvan de makelaar "Huis&Co" heet, maak gebruik van UNION!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| SELECT hs_naam, gm_naam
FROM HUIS
WHERE gm_naam =
( SELECT gm_naam, bd_naam
FROM GEMEENTE
WHERE bn_naam IN
( SELECT bd_naam
FROM KOPER
WHERE bod_waarde >=
( SELECT vraag_prijs
FROM BOD
WHERE vraag_prijs != NULL )));
UNION
( SELECT gm_naam
FROM GEMEENTE
WHERE gm_naam IN
( SELECT mk_naam, gm_naam
FROM MAKELAAR
WHERE mk_naam = "Huis&Co")); |
7) Verhoog elk bod van makelaar "Gezellig-wonen" met 10%
code:
1
2
3
4
5
6
7
8
9
| UPDATE BOD
SET bod_waarde = bod_waarde * 1.1
WHERE bd_naam IN
( SELECT gm_naam,bd_naam
FROM GEMEENTE
WHERE gm_naam =
( SELECT mk_naam, gm_naam
FROM MAKELAAR
WHERE mk_naam = "Gezellig-wonen" )); |
8 ) Geef een melding voor: De kolom hs_id in de tabel HUIS moet zijn ingevult, tevens uniek! (je checkt dus even die tabel)
code:
1
2
3
4
5
| SELECT DISTINCT "Het huis met de naam ",hs_naam," heeft geen uniek id!" FROM HUIS GROUP BY hs_id HAVING hs_id IS NULL OR COUNT(*) > 1; |
9) Wat is het gemiddelde, het laagste en het hoogste bod wat er is gedaan op het huis Heidebloem?
code:
1
2
3
4
5
6
7
8
9
| SELECT AVG(bod_waarde), MIN(bod_waarde), MAX(bod_waarde)
FROM KOPER
WHERE bd_naam IN
( SELECT gm_naam, bd_naam
FROM GEMEENTE
WHERE gm_naam IN
( SELECT gm_naam, hs_naam
FROM HUIS
WHERE hs_naam = "Heidebloem")); |
10) Geef de naam van de huizen die zijn verkocht onder makelaar "Piet, of die nog te koop staan onder makelaar "Jan"!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| SELECT hs_naam
FROM HUIS
WHERE verkocht = "j"
AND gm_naam IN
( SELECT gm_naam, mk_naam
FROM MAKELAAR
WHERE mk_naam = "Piet")
UNION
SELECT hs_naam
FROM HUIS
WHERE tekoop = "j";
AND gm_naam IN
( SELECT gm_naam, mk_naam
FROM MAKELAAR
WHERE mk_naam = "Jan"); |
euh...ja