Open de SQL-tool. We maken voor deze opdracht gebruik van de database 'transacties'. Schrijf een query waarmee je kunt controleren of alle rekeninghouders een telefoonnummer hebben opgegeven.
![]() |
Transacties |
De ING wil een overzicht van alle transacties van het type GM (geldautomaat) of OV (overschrijving) vanaf 1 maart 2016. Daarvoor is de onderstaande query bedacht:
SELECT transactie_id, type, rekening_bij, rekening_af, datum
FROM transactie
WHERE datum >= '2016-03-01'
AND type ='GM' OR type = 'OV';
Het resultaat van deze query is een lijst van alle transacties van het type GM vanaf 1 maart 2016 en alle transacties die van het type OV zijn. Dat was niet de bedoeling.
Je kunt deze query vergelijken met de volgende som: 3 + 2 x 5. De uitkomst van deze som is 13. Je vermenigvuldigt immers eerst 2 met 5 en daarna tel je er 3 bij op. Kortom: vermenigvuldigen gaat vóór optellen. Als het de bedoeling is om eerst op te tellen en dan pas te vermenigvuldigen, dan moet je haakjes gebruiken: (3 + 2) x 5.
Hetzelfde is het geval wanneer je in een voorwaarde AND en OR gebruikt: AND gaat voor OR.
In het voorbeeld wordt dus eerst gezocht naar de rijen waarvoor geldt dat het transacties zijn vanaf 1 maart 2016 en waarvan het type = 'GM'. Daarna wordt er gezocht naar alle transacties met type = 'OV'. Om het gewenste resultaat te krijgen, moeten er haakjes gebruikt worden in de query:
SELECT transactie_id, type, rekening_bij, rekening_af, datum
FROM transactie
WHERE datum >= '2016-03-01'
AND (type ='GM' OR type = 'OV');
Met als resultaat alle transacties met type = 'GM' of type = 'OV' vanaf 1 maart 2016.