Jeg tror, at du er nødt til at kører det i 2 forespørgsler:
Efterår:
Update DinTabel Set varighed = varighed + 1 Where (Til is null or Til >=#2003-12-31#) And (Fra <=#2003-09-01#)
Forår:
Update DinTabel Set varighed = varighed + 1 Where (Til is null or Til >=#2004-02-01#) And (Fra <=#2004-05-31#)
"beregner om de var med i efteråret (hele perioden fra 01-09-2003 til 31-12-2003) og tildeler disse 1 point " ... skal man så have været medlem i hele perioden, eller blot medlen i perioden for at opnå point ???
jensen363: man skal have været med hele perioden
Så vidt jeg kan se, skal jeg oprette feltet Varighed, inden update skal foretages? Hvordan gøres det i SQL?
Kan et medlem være indmeldt hhv. udmeldt flere gange i samme register, eller er der typisk kun een registrering pr. medlem ???
Kan du ikke oprette den manuelt?
jensen363: kun een gang pr mand
Du opretter feltet varighed således i SQL:
Alter Table DinTabel add Varighed Integer
men det skal nok ligge i endnu en forespørgsel...
Jeg ville nok -også af hensyn til fremtiden- tælle antal dage, de havde været medlem, og så give 1 point for hver 180 dage - og udvide "sæsonerne" til at være fra 1-1 til 30-6 og 1-7 til 31-12.
Jeg har lavet en løsning ud fra følgende kriterier :
Opret en ny tabel ( tblSæsonIntervaller ) med følgende :
SæsonID ( Eksempelvis Forår03, Efterår03, Forår04 osv. )
PeriodeFra ( dato )
PeriodeTIL ( dato )
Point ( 1 )
Følgende query skulle så gøre abejdet med at identificere medlemmernes medlemsskab pr. sæson
SELECT tblMedlemmer.MedlemsNr, tblMedlemmer.Navn, tblSæsonIntervaller.SæsonID, tblSæsonIntervaller.Point
FROM tblMedlemmer, tblSæsonIntervaller
WHERE (((tblMedlemmer.Udmeldt) Is Null Or (tblMedlemmer.Udmeldt)>=[tblSæsonIntervaller]![PeriodeTil]) AND ((tblMedlemmer.Indmeldt)<=[tblSæsonIntervaller]![PeriodeFra]));
adan, har du kigget mere på denne?
Hmm, den her glemte jeg da vist. Jeg endte med at foretage optællingen i excel, da det var en engangsforetagelse. Derfor ved jeg heller ikke hvilken løsning der ville paase bedst, så I får lov til at dele pointene ligeligt.
Håber det går an :-)
Ja, det er båre dæilit. Måske skulle du have skrevet fra starten, at det blot skulle gøres én gang. Men tak alliwl.
Staticdata-> Der sneg sig vist lige en enkelt stavefejl ind der: "Bare" er med "A" i stedet for "Å" ;~)
thomasjepsen->jamen, det var båre, jeg ville skrive >:-[