Voor een export wil ik graag meerdere nationaliteiten per persoon in 1 record ophalen.

De tabellen waar de gegevens in staan zijn Persoon (prsprsanr is sleutelveld) en Nationaliteit (met natnatntk voor de nationaliteitscode, natprsanr als koppelveld en natidcvrv om te kijken of nationaliteit is vervallen).

Ik ben al een tijdje aan het puzzelen maar kom er nog niet uit. Dit is wat ik nu heb:

SELECT   persoon.prsprsanr,
         nat1.natnatntk,
         nat2.natnatntk,
         nat3.natnatntk
FROM     persoon as persoon 
         left join nationaliteit as nat1 on persoon.prsprsanr = nat1.natprsanr and nat1.natidcvrv = '' 
         left join nationaliteit as nat2 on nat1.natprsanr = nat2.natprsanr and nat2.natidcvrv = '' 
         left join nationaliteit as nat3 on nat3.natprsanr = nat2.natprsanr and nat3.natidcvrv = ''
WHERE    nat2.natnatntk not in(nat1.natnatntk, nat3.natnatntk)
AND      nat3.natnatntk not in(nat1.natnatntk, nat2.natnatntk)
AND      nat1.natnatntk = (select min(ns.natnatntk) from nationaliteit as ns where ns.natprsanr = nat1.natprsanr)
ORDER BY nat1.natprsanr, nat1.natnatntk asc


Hierbij krijg ik bij een persoon met 3 nationaliteiten het volgende resultaat:
prsprsanr-nat1-nat2-nat3
123456789-1-40-389
123456789-1-389-40

De laatste zou ik dus graag ook niet in de resultaten van de query terug zien

Reageren