09. maj 2010 - 09:06 Der er 6 kommentarer og
1 løsning

Top 1

Jeg soeger et DoCmd.RunSQL udtryk der kan selecte den foerste raekke af en-til-mange raekker.

For eksempel, jeg har en tabel Person med felterne personid og navn og en tabel PersonTelefon med felterne personid og telefonnummer.  Person har de foelgende vaerdier: 1,'hansen'; 2, 'jensen'; 3,'olsen'; 4, 'svendsen' og PersonTelefon vaerdierne 1, '065/123456'; 1, '065/131415'; 3, '02/1234567'; 4, '03/2345678'; 4, '067/223344'.  Jeg vil opnaa det foelgende resultat:

hansen 065/123456
jensen
olsen 02/12344567
svendsen 03/2345678

Hvis jeg proever med DoCmd.RunSQL "SELECT Top1 navn, telefonnummer FROM ...." faar jeg kun 1 hansen 065/123456.

Jeg er klar over at der bestaar omveje saasom at koere sql koden saerskilt for hver personid i stil med For Each [personid] DoCmd.RunSQL "SELECT Top 1 p.personid,..... WHERE p.persoonid = ..  Men hvad jeg specifikt soeger er et sql statement der i en omgang kan selecte alle navne og for hvert navn nul eller et telefonnummer.

Det overraskede mig at jeg ikke kunne finde det.  Maaske er det min hjerne der er slaaet paa weekend mode.
Avatar billede terry Ekspert
09. maj 2010 - 10:53 #1
I'm surprised you get any result from
"DoCmd.RunSQL "SELECT Top1 navn..."


DoCmd.RunSQL is for action SQL only (INSERT, UPDATE, DELETE) I wasnt aware that you could select!
Avatar billede erikjacobsen Ekspert
09. maj 2010 - 10:54 #2
Prøv noget i retning af


SELECT Top1 navn, MIN(telefonnummer) FROM .... JOIN ... GROUP BY navn
Avatar billede erikjacobsen Ekspert
09. maj 2010 - 10:55 #3
Ups, uden TOP 1:



SELECT navn, MIN(telefonnummer) FROM .... JOIN ... GROUP BY navn
Avatar billede terry Ekspert
09. maj 2010 - 10:55 #4
Cant you use SELECT DISTINCT ...?
Avatar billede terry Ekspert
09. maj 2010 - 11:00 #5
"Cant you use SELECT DISTINCT ...? "

no of course you cant if you only want the first telephone. I think I'm in weekend mode too :o)
09. maj 2010 - 11:18 #6
erikjacobsen, ja det er naturligvis en loesning jeg ikke havde taenkt paa og som virker.  Det er en skam du ikke samler paa points.  Saa maa jeg jo give dem til mig selv for at faa spoergsmaalet lukket.

Terry, as said my head is in weekend mode.  The codes for which I need the solution are actually in this pattern:  DoCmd.RunSQL "INSERT INTO PersonQuery (navn, telefonnummer) SELECT navn, MIN(telefonnummer) FROM o.s.v."
Avatar billede terry Ekspert
09. maj 2010 - 11:21 #7
;o)
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