[sql] gemeente bij laatste verhuisbeweging

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
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).


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

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 09:18

Creepy

Tactical Espionage Splatterer

(jarig!)
Kan het zijn dat de mensen die je mist niet verhuisd zijn en dus geen STOP hebben?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Creepy schreef op dinsdag 23 maart 2010 @ 17:55:
Kan het zijn dat de mensen die je mist niet verhuisd zijn en dus geen STOP hebben?
neen daar zit de fout niet, in de dataset zitten enkel mensen die reeds hebben verhuisd (dus die een geldige STOP hebben)

dus mijn syntax klopt volledig?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
     WHERE ROY2.ID = ROY.ID);


Ik ben net te weten gekomen dat mijn fout zou moeten liggen aan mijn WHERE functie --> als ik de sql syntax run met of zonder deze where functie komt hij identiek dezelfde resultaten uit.
Nu weet ik alleen niet hoe of wat ik moet veranderen om deze functie goed te laten werken....