Het is misschien een iets eenvoudige vraag maar ik vind mijn fout niet (nog niet zolang bezig met sql).
Ik ben bezig met SQL in sas. Ik heb een dataset met persoonsgegevens.Deze tabel bevat een aantal verhuisgegevens van verschillende personen:
:
ID = uniek persoonsnummer
REF = gemeentecode
STOP = datum laatste verhuisbeweging
In de tabel is het mogelijk dat een zelfde persoon meerdere lijnen heeft. Zo zal een persoon die verhuist een tweede lijn hebben met zijn nieuwe gemeentecode (of als hij in dezelfde gemeente blijft wonen een nieuwe lijn hebben met nog eens dezelfde gemeentecode). In beide gevallen zal hij natuurlijk een andere STOP datum hebben.
Nu wil ik een nieuwe tabel met daarin voor ieder persoon één lijn met daarin de datum van zijn laatste wijziging van gemeentecode en de refnis van de laatste wijziging.
met andere woorden ik wil volgende tabel:
-ID
-MAX(STOP)
-REF waar MAX(STOP)
Nu heb ik een sql geschreven maar deze doet het niet (te weinig personen als uitkomst).
Ziet iemand waar ik een fout maak?
mvg
Ik ben bezig met SQL in sas. Ik heb een dataset met persoonsgegevens.Deze tabel bevat een aantal verhuisgegevens van verschillende personen:
:
ID = uniek persoonsnummer
REF = gemeentecode
STOP = datum laatste verhuisbeweging
In de tabel is het mogelijk dat een zelfde persoon meerdere lijnen heeft. Zo zal een persoon die verhuist een tweede lijn hebben met zijn nieuwe gemeentecode (of als hij in dezelfde gemeente blijft wonen een nieuwe lijn hebben met nog eens dezelfde gemeentecode). In beide gevallen zal hij natuurlijk een andere STOP datum hebben.
Nu wil ik een nieuwe tabel met daarin voor ieder persoon één lijn met daarin de datum van zijn laatste wijziging van gemeentecode en de refnis van de laatste wijziging.
met andere woorden ik wil volgende tabel:
-ID
-MAX(STOP)
-REF waar MAX(STOP)
Nu heb ik een sql geschreven maar deze doet het niet (te weinig personen als uitkomst).
code:
1
2
3
4
5
6
7
8
9
10
11
| PROC SQL; CREATE TABLE WORK.ROY3 AS SELECT ROY.ID, ROY.REF FROM WORK.ROY AS ROY WHERE ROY.STOP = (SELECT MAX(ROY2.STOP) FROM WORK.ROY AS ROY2 WHERE ROY2.ID = ROY.ID); QUIT; |
Ziet iemand waar ik een fout maak?
mvg