Het voorbeeld is sterk vereenvoudigd om het probleem makkelijker te kunnen uitleggen. Ik heb een tabel met personeel, waarbij een regel voor ieder personeelslid bestaat die in dienst is gekomen. Als de medewerker uit dienst gaat, wordt een nieuwe regel aangemaakt. Niet echt netjes genormaliseerd, maargoed...
Voornaam Achternaam Indienst Uitdienst
Paul Jansen 1 0
Paul Jansen 0 1
Jan Klaassen 1 0
Truus de Mier 1 0
Henk de Vries 1 0
Henk de Vries 0 1
Pietje Puk 1 0
Ruud Lubbers 1 0
Pietje Puk 0 1
Ik ben nu op zoek naar de INdienstredingsregels van mensen die UIT dienst zijn.
De query moet als resultaat opleveren:
Paul Jansen 1 0
Henk de Vries 1 0
Pietje Puk 1 0
Een nested query werkt niet, omdat ik op meer dan 1 argument moet zoeken:
SELECT * FROM Personeel WHERE Voornaam, Achternaam IN (SELECT Voornaam, Achternaam FROM Personeel WHERE Uitdienst = 1)
Alleen op voornaam of alleen op achternaam zoeken is niet voldoende, omdat voornamen of achternamen niet uniek zijn. Ik heb geen personeelsnummer o.i.d., maar de combinatie voornaam, achternaam is uniek.
Voornaam Achternaam Indienst Uitdienst
Paul Jansen 1 0
Paul Jansen 0 1
Jan Klaassen 1 0
Truus de Mier 1 0
Henk de Vries 1 0
Henk de Vries 0 1
Pietje Puk 1 0
Ruud Lubbers 1 0
Pietje Puk 0 1
Ik ben nu op zoek naar de INdienstredingsregels van mensen die UIT dienst zijn.
De query moet als resultaat opleveren:
Paul Jansen 1 0
Henk de Vries 1 0
Pietje Puk 1 0
Een nested query werkt niet, omdat ik op meer dan 1 argument moet zoeken:
SELECT * FROM Personeel WHERE Voornaam, Achternaam IN (SELECT Voornaam, Achternaam FROM Personeel WHERE Uitdienst = 1)
Alleen op voornaam of alleen op achternaam zoeken is niet voldoende, omdat voornamen of achternamen niet uniek zijn. Ik heb geen personeelsnummer o.i.d., maar de combinatie voornaam, achternaam is uniek.
Laatst bewerkt: