De ING wil graag weten van welke type (acceptgiro, betaalautomaat, geldautomaat, etc.) de oudste transactie was. Deze vraag is niet zo makkelijk te beantwoorden. Dit komt omdat je eigenlijk twee opdrachten moet uitvoeren om de vraag te beantwoorden:
Het antwoord op het eerste deel van de vraag kun je vinden met de volgende query:
SELECT MIN(datum)
FROM transactie
Het resultaat van deze query is '2015-12-19'. Wanneer je dit antwoord hebt, is het tweede deel van de vraag niet zo moeilijk meer te beantwoorden:
SELECT type
FROM transactie
WHERE datum = '2015-12-19'
Deze twee queries kun je combineren tot een enkele query:
SELECT type
FROM transactie
WHERE datum = (SELECT MIN(datum)
FROM transactie)
Bij het where-statement is, in plaats van het antwoord van de eerste query, de hele eerste query ingevuld! Dit wordt een subquery genoemd.
Er is een belangrijk verschil tussen een query en een subquery: het select-statement van de subquery mag maar één kolom bevatten. Bij een voorwaarden met een subquery wordt het resultaat namelijk altijd vergeleken met één waarde uit één kolom, bijvoorbeeld datum = '2015-12-19'.