Avatar billede mlhave Nybegynder
19. august 2003 - 19:30 Der er 24 kommentarer og
1 løsning

Samle data på "mangesiden" i èn tabel

Hvis man feks har en tabel med en medlemsliste hvor medlemsnumrerne er skrevet og på mangesiden har man en tabel med flere navne pr. medlemsnr.

tbl1
Medlemsnr  Adresse  Postnr
1          Vej 4    8000
2          Gade 11  3400

tbl2
Nr          Navn        MedlemsnrRef
1          Peter        1
2          Alice        1
3          Kurt        2
4          Lise        2

Kan man så lave en forespørgsel der samler dataene som nedenstående:

qry1
MedlemsNr      Navn
1              Peter, Alice
2              Kurt, Lise
Avatar billede lap Nybegynder
19. august 2003 - 19:35 #1
Du kan ikke lave det i en "simpel" sql, da navn vil have varierende længde/antal poster. Du vil være nødt til at pakke det ind i programkode, som samler data sammen for dig.
Avatar billede mlhave Nybegynder
19. august 2003 - 19:39 #2
Hmmm, hvad hvis der kun kan være 2 navne pr. medlemsnummer?
Avatar billede lap Nybegynder
19. august 2003 - 19:48 #3
ingen forskel - sql er ikke beregnet til at samle data sammen i en record (et recordsæt).

Du kan få data i flere rækker, men ikke i en.
Avatar billede arne_v Ekspert
19. august 2003 - 19:49 #4
Hvis der altid er præcis 2 navne per nr kan du lave:

SELECT tbl1.medlemsnr, tbl2_1.navn, tbl2_2.navn
FROM tbl1, tbl2 tbl2_1, tbl2 tbl2_2
WHERE tbl1.medlemsnr=tbl2_1.medlemsnrref AND
tbl2_1.medlemsnrref=tbl2_2.medlemsnrref AND
tbl2_1.navn<>tbl2_2.navn

men ellers tror jeg også at du skal have den logik flyttet
op i applikationen.
Avatar billede lap Nybegynder
19. august 2003 - 19:50 #5
som arne_v skriver: Hvis der altid er PRÆCIS 2 navne...
Avatar billede mlhave Nybegynder
19. august 2003 - 19:58 #6
den virker, men dataene bliver:

1 Peter Alice
1 Alice Peter
2 Kurt Lise
2 Lise Kurt

Kan man nøjes med "halvdelen"?
Avatar billede arne_v Ekspert
19. august 2003 - 20:08 #7
Ups.
Avatar billede arne_v Ekspert
19. august 2003 - 20:09 #8
Prøv og erstat:

tbl2_1.navn<>tbl2_2.navn

med:

tbl2_1.navn<tbl2_2.navn
Avatar billede mlhave Nybegynder
19. august 2003 - 20:10 #9
arne_v > Kanon, smid lige et svar :o)
Avatar billede lap Nybegynder
19. august 2003 - 20:11 #10
men hvis navnene er "lise" og "lise", så går det galt - det skal være 2 forskellige navne.
Avatar billede mlhave Nybegynder
19. august 2003 - 20:12 #11
Av, det er ikke så godt... :o(
Avatar billede mlhave Nybegynder
19. august 2003 - 20:13 #12
Personerne har unikke numre...
kan de bruges...?
Avatar billede lap Nybegynder
19. august 2003 - 20:13 #13
ja, vent et øjeblik...
Avatar billede arne_v Ekspert
19. august 2003 - 20:15 #14
tbl2_1.nr <> tbl2_2.nr
Avatar billede lap Nybegynder
19. august 2003 - 20:16 #15
og her sidder jeg og overvejer subselect, group by osv. - somme tider er løsningen nemmere end man forestiller sig :-)
Avatar billede mlhave Nybegynder
19. august 2003 - 20:17 #16
Hvor skal den sidste "proppes" ind?
Avatar billede lap Nybegynder
19. august 2003 - 20:17 #17
i stedet for "tbl2_1.navn<tbl2_2.navn"
Avatar billede lap Nybegynder
19. august 2003 - 20:18 #18
men vel igen kun "tbl2_1.nr < tbl2_2.nr" ??
Avatar billede arne_v Ekspert
19. august 2003 - 20:19 #19
Ups. Ja.
Avatar billede mlhave Nybegynder
19. august 2003 - 20:25 #20
Meget flot!
Da I begge har været meget hjælpsomme vil jeg dele pointene 60/40 i arne_v´s favør.
Gider I begge smide et svar? jeg er meget tilfreds :o)
Avatar billede lap Nybegynder
19. august 2003 - 20:26 #21
jeg skal ikke have points - du giver alle 100 til arne_v :-)
Avatar billede mlhave Nybegynder
19. august 2003 - 20:26 #22
Ok :o)
Avatar billede arne_v Ekspert
19. august 2003 - 20:29 #23
svar
Avatar billede arne_v Ekspert
19. august 2003 - 20:30 #24
lap>

Ikke fordi det kommer mig ved - men samler du ikke på point ?
Avatar billede lap Nybegynder
19. august 2003 - 20:39 #25
jeg samlet ikke på point - hvis jeg skal have point, så skal jeg gøre mig fortjent til dem - og det er jeg ikke i denne situation.

Derudover er jeg ikke specielt interesseret i points - i stedet er jeg interesseret i udfordringer :-)
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

IT-JOB