De duur berekenen van verblijf of afwezigheid

Status
Niet open voor verdere reacties.

celestecelest

Nieuwe gebruiker
Lid geworden
24 jan 2005
Berichten
2
Van een x aantal personen die een aantal malen geëmigreerd en geïmmigreerd zijn wil ik de duur berekenen van verblijf/afwezigheid. Ik heb een query gemaakt om de dubbele personen te selecteren met ‘find duplicates’.

Vb

Persoon migjaar migmnd migdatum emi/immi duur
A 1980 12 10 emi -
A 1983 10 26 immi duur afwezigheid
A 1990 10 5 emi duur verblijf
A 1993 5 30 immi duur afwezigheid
B 1999 7 1 immi -
B 2004 6 29 emi duur verblijf
C 1983 8 8 immi -
C 1990 12 12 emi duur verblijf
C 2003 7 31 immi duur afwezigheid

Ik kan een extra kolom toevoegen waar de migratiedatum in maanden staat. Kent iemand een formule die altijd klopt die ook rekening houdt met schrikkeljaren? Of is de volgende formule ook juist: jaar*12 + mnd + datum/(365/12)

Vervolgens moet het verschil berekend worden tussen de datum van aankomst en de datum van vertrek. Bij het eerste record hoeft dus nog niets berekend te worden. (persoon A vertrekt in 1980 voor het eerst, zodra hij terug komt in 1983 kan de tijd worden berekend van de afwezigheid.)
Hoe kan ik deze verschillen berekenen tussen de records? (En dan natuurlijk niet het verschil tussen t laatste record van A en de eerste van B, die duur moet leeg zijn.)
 
maak en query met berekende velden zodat je de velden samenvoegt tot datums; welke je perfact van elkaar kan aftrekken

gebruik dateserial(jaar; maand; dag)

voorbeeld
begindatum : dateserial(migjaar; migmnd :migdatum)
 
berekenen verblijftijd

ik ben er nog steeds niet helemaal uit hoe ik de verblijftijd kan berekenen.

heeft iemand een tip voor een sql query, het liefst een zo efficient mogelijke aangezien het om meer dan 100.000 records gaat.
 
Re: berekenen verblijftijd

Je zult moeten beginnen met het aanmaken van twee querys waarin binnenkomst een vetrek zijn gescheiden.
In deze qry voeg jee de datum's samen:
Vertrek : dateserial(migjaar; migmnd :migdatum)

en in de tweede qry :
Aankomst : dateserial(migjaar; migmnd :migdatum)

deze twee qry s voeg je weer samen, waarin je de twee datumvelden van elkaar aftrekt,

Duur = vertrek-aankomst

veel Succes
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan