Avatar billede svjensen Nybegynder
16. oktober 2003 - 11:21 Der er 7 kommentarer og
1 løsning

Hente bestemt aldersgruppe fra medlemstabel.

Jeg har to tabeller:

medlemmer: medlemsnr, navn, cprnr (6 cifre)
alder: alderid, aldersgruppe, startaar, slutaar

Hvor indholdet af 'alder' er:

1  Senior            1910  1985
2  Ynglinge          1986  1987
3  Juniorer          1988  1989
4  Drenge/Piger      1990  1991
5  Minidregne/-piger  1992  1993

Brugeren kan vælge at få vist en liste over bestemte aldersgrupper vha. nogle checkboxe (én for hver gruppe), som har samme navn. Vælger man eksempelvis senior og juniorer bliver indholdet af chkAlder = 1, 3

Nu er det så, at jeg meget gerne vil kunne trække personer fra disse aldersgrupper ud af 'medlemmer' vha. mit SQL kald, altså uden at skulle hente alle ind og derefter teste for tilhørsforhold til grupperne.
Men kan jeg det?
Avatar billede hossein Nybegynder
16. oktober 2003 - 11:46 #1
det nemmeste er at tilføje en kolonne til tabellen medlemmer som hedder alderID så kan du joine tabellerne og trække data ud.
Eller lave en anden kolonne i medlemmer som indeholder fødselåret. Ellers bliver det som du ikke vil ha, hente alle data ud og behandle dem og finde rigtige svar.
Avatar billede svjensen Nybegynder
16. oktober 2003 - 12:19 #2
Jeg vil meget nødigt skulle opdatere alle medlemmer, når vi starter en ny søson (og aldersgrænserne ændres), og jeg kan derfor ikke rigtigt bruge dit første forslag.
Mht. det andet forslag, så har jeg ikke noget problem i at tilføje en kolonne med fødselsåret, da det kan ske automatisk på baggrund af cprnummeret.
Hvis nu vi antager at jeg har en kolonne 'foedeaar', hvordan skal SQL kaldet så se ud, når det skal hente en bestemt aldersgruppe?
Avatar billede svjensen Nybegynder
16. oktober 2003 - 12:23 #3
søson = sæson
Avatar billede hossein Nybegynder
17. oktober 2003 - 11:43 #4
ok, jeg ved ikke hvor du skal bruge den men her er et ASP løsning. men i dit tilfælde skal du lave et array og bruge split funktionen for at adskille værdierne da brugeren kan vælge mere end et aldersgruppe:
<%
'begynd main loop

set RS = Conn.Execute("SELECT * FROM [alder] WHERE [alderID]=" & request.form("ID") & "")
if not RS.EOF then
    RS.movefirst
    do
        response.write "<b>"  & rs("Slutaar") & "</b><p>" & chr(13)
        'Nu udskriver du medlemmerne
        set ORS = Conn.Execute("SELECT * FROM [medlemmer] WHERE [Foedaar] between " & RS("startaar") &" AND "& RS("slutaar") &"")
        if not ORS.EOF then
            ORS.movefirst
            do
                response.write bla bla bla        'udskriv det som du vil både RS og PRS kan benyttes
                ORS.movenext
            loop until ORS.EOF
        end if
        response.write "<p>"
        RS.movenext
    loop until RS.EOF
end if
conn.close
%>
...
Avatar billede svjensen Nybegynder
17. oktober 2003 - 12:57 #5
Jeg kigger lidt på det.
I den første sql sætning, kan jeg vel bare bruge ...WHERE [alderid] IN (" & request.form("chkAlder") & ")"
I stedet for at skulle splitte et array?
Eller hva'?
Avatar billede hossein Nybegynder
17. oktober 2003 - 14:35 #6
Jo, jeg tror at man kan godt anvende IN, ellers med array.
Avatar billede svjensen Nybegynder
28. oktober 2003 - 11:31 #7
Jeg havde helt glemt, at jeg havde et åbent spørgsmål her.

Det virker nu (med brug af IN).

Husk lige et svar for aå få point
Avatar billede hossein Nybegynder
28. oktober 2003 - 18:24 #8
ok, tak!
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
Computerworld tilbyder specialiserede kurser i database-management

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