Onderstaande modeloplossingen zijn mogelijke oplossingen en zijn niet de enige juiste oplossingen om de query correct te laten uitvoeren.

  1. Geef de naam van de klanten die in de gemeente Hoboken of Schoten wonen. Maak gebruik van "IN" in combinatie met een subquery.

    SELECT naam
    FROM klant
    WHERE postcode_id IN (SELECT postcode_id 
    											FROM postcode
    											WHERE gemeente IN ('Hoboken','Schoten'));
    
  2. Geef uit de tabel klanten de naam van de klanten die met een hoofdletter P beginnen.

    SELECT naam
    FROM klant
    WHERE UPPER(naam) LIKE "P%";
    
  3. Geef de naam van de artikelen waarcvan de prijs tussen 2 en 8 euro ligt.

    SELECT aa.artikel
    FROM artikel aa, artikelprijs ap
    WHERE aa.artikel_id = ap.artikel_id
    AND ap.prijs between 2 and 8;
    
  4. Geef het id en de naam van de artikelen met een artikel_id tussen 2 en 6.

    SELECT artikel_id, artikel
    FROM klant
    WHERE artikel_id BETWEEN 2 and 6;
    
  5. Geef de naam van de vrouwelijke klanten.

    SELECT naam, 'vrouw'
    FROM klant
    WHERE geslacht = false;
    
  6. Geef de naam van de artikelen begint met een hoofdletter P of een kleine letter p en waarbij het artikel id 2, 4 of 7 is. Maak gebruik van "IN".

    SELECT artikel
    FROM artikel
    WHERE (artikel LIKE 'P%' OR artikel LIKE 'p%') 
    AND artikel_id IN (2,4,7);
    
  7. Geef de naam van de klanten die in Brussel wonen (de postcode_id ken je niet)

    SELECT klant.naam
    FROM klant, postcode
    WHERE klant.postcode_id = postcode.postcode_id
    AND UPPER(postcode.gemeente) = 'BRUSSEL';
    
  8. Geef de naam van de artikelen waarvan de naam begint met een hoofdletter of kleine letter p en waarvoor reeds een factuur werd opgesteld. Maak gebruikt van exists.

    SELECT artikel
    FROM artikel, artikelprijs
    WHERE artikel.artikelid = artikelprijs.artikel_id
    AND UPPER(artikel.artikel) LIKE 'P%'
    AND EXISTS 
     (SELECT * 
    	FROM factuurdetail
      WHERE artikelprijs.artikelprijs_id = factuurdetail.artikelprijs_id);
    
  9. Geef de naam van alle klanten en schrijf er steeds man of vrouw bij. Sorteer de gegevens eveneens p naam en zorg er ook voor dat de kolom met de vermelding man of vrouw als titel geslacht meekrijgt.

    SELECT naam, "man" geslacht
    FROM klant
    WHERE geslacht = true
    UNION
    SELECT naam, "vrouw" geslacht
    FROM klant
    WHERE geslacht = false
    ORDER BY 1;
    
  10. Hoeveel mannelijke en vrouwelijke klanten zijn er? Zorg ervoor dat er woordelijk de vermelding man en vrouw in het resultaat is opgenomen en dat de respectievelijke kolommen als titel geslacht en aantal krijgen.

    SELECT "man" geslacht, COUNT(*) aantal
    FROM klant
    WHERE geslacht = true
    UNION
    SELECT "vrouw" geslacht, COUNT(*) aantal
    FROM klant
    WHERE geslacht = false;
    
  11. Geef de naam van alle artikelen achterstevoren gesorteerd.

    SELECT artikel
    FROM artikel
    ORDER BY 1 DESC;
    
  12. Geef de naam van de artikelen die uit 8 karakters bestaan.

    SELECT artikel
    FROM artikel
    WHERE LEN(artikel) = 8;
    
  13. Geef het factuurnummer waarbij een artikel voorkomt dat begint met de letter "Bi". Maak gebruik van een subquery.

    SELECT fa.factuur_id
    FROM factuurdetail fa
    WHERE EXISTS (SELECT artikel
    	FROM artikel aa, artikelprijs ab
      WHERE aa.artikel_id = ab.artikel_id
    	AND ab.artikelprijs_id = fa.artikelprijs_id
      AND aa.artikel LIKE "Bi%");
    
  14. Geef de naam en het adres van de klanten waarvoor een factuur werd opgesteld tussen 21/09/2010 en 22/09/2010.

    SELECT DISTINCT klant.klantnaam, adres, postcode.postcode, postcode.gemeente
    FROM klant, postcode
    WHERE klant.postcode_id = postcode.postcode_id
    AND EXISTS 
    	(SELECT *
    	FROM factuur
      WHERE factuur.klant_id = klant.klant_id
      AND factuur.datum BETWEEN '21/9/2010' AND '22/9/2010' );
    
  15. Geef de naam van de klanten waarvan de naam begint met Pete of Arch of Pie en waarvan het geslacht mannelijk is.

    SELECT naam
    FROM klant
    WHERE (name LIKE "Pete%"
    OR name LIKE "Arch%"
    OR name LIKE "Pie%")
    AND geslacht = true;
    
  16. Selecteer het kleinste artikel id waarvan de artikelnaam begint met de hoofdletter P.

    SELECT MIN(artikel_id)
    FROM artikel
    WHERE artikel LIKE ''P%';
    
  17. Geef de eerste 7 karakters van de naam van alle klanten.

    SELECT SUBSTR(naam, 1, 7)
    FROM klant;
    
  18. Geef de laatste 2 karakters van alle artikelen die beginnen met de letter k.

    SELECT UPPER(RIGHT(artikel, 2))
    FROM artikel
    WHERE LOWER(artikel) LIKE "k%";