Avatar billede adan Nybegynder
08. oktober 2004 - 13:55 Der er 13 kommentarer og
3 løsninger

Tildeling af point efter varighed af medlemsskab i sæson

Jeg har en db med et antal deltagere i klubben. De har alle et "til"- og et "fra"-felt med dato for indmeldelse og udmeldelse i sæsonen. Det er formatet dd-mm-åååå.

Jeg vil nu gerne lave en forespørgsel, som selv beregner om de var med i efteråret (hele perioden fra 01-09-2003 til 31-12-2003) og tildeler disse 1 point i et nyt felt der hedder varighed.
Ligeledes skal de der er med i foråret (01-02-2004 til 31-05-2004) have 1 point i varinghed.

Således at resultatet bliver 1 point for efterår eller forår, og 2 hvis man er med begge gange.

Jeg har forgæves prøvet mig lidt frem, men får fejl, så jeg vil blive glad for noget starthjælp..
08. oktober 2004 - 14:02 #1
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#)
Avatar billede jensen363 Forsker
08. oktober 2004 - 14:07 #2
"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 ???
Avatar billede adan Nybegynder
08. oktober 2004 - 14:13 #3
jensen363: man skal have været med hele perioden
Avatar billede adan Nybegynder
08. oktober 2004 - 14:15 #4
Så vidt jeg kan se, skal jeg oprette feltet Varighed, inden update skal foretages? Hvordan gøres det i SQL?
Avatar billede jensen363 Forsker
08. oktober 2004 - 14:21 #5
Kan et medlem være indmeldt hhv. udmeldt flere gange i samme register, eller er der typisk kun een registrering pr. medlem ???
08. oktober 2004 - 14:23 #6
Kan du ikke oprette den manuelt?
Avatar billede adan Nybegynder
08. oktober 2004 - 14:24 #7
jensen363: kun een gang pr mand
08. oktober 2004 - 14:25 #8
Du opretter feltet varighed således i SQL:
Alter Table DinTabel add Varighed Integer

men det skal nok ligge i endnu en forespørgsel...
Avatar billede Jørgen Kirkegaard Professor
08. oktober 2004 - 14:53 #9
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.
Avatar billede jensen363 Forsker
08. oktober 2004 - 15:09 #10
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]));
12. oktober 2004 - 13:53 #11
adan, har du kigget mere på denne?
Avatar billede adan Nybegynder
22. november 2004 - 10:48 #12
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 :-)
22. november 2004 - 10:49 #13
sure! Takker :o)
Avatar billede Jørgen Kirkegaard Professor
24. november 2004 - 00:41 #14
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.
24. november 2004 - 08:38 #15
Staticdata-> Der sneg sig vist lige en enkelt stavefejl ind der: "Bare" er med "A" i stedet for "Å" ;~)
Avatar billede Jørgen Kirkegaard Professor
05. december 2004 - 22:57 #16
thomasjepsen->jamen, det var båre, jeg ville skrive >:-[
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester