Avatar billede lubker Nybegynder
05. februar 2006 - 20:43 Der er 15 kommentarer og
1 løsning

SQL kald til acces.

hej eksperter.
Jeg har en database med kolonnerne:

id | svoemmer | staevne | 50fri

Nu vil jeg gerne hente den post for hvor svømmer er lig med indholdet af variabeln "svoemmer" og den mindste værdi af 50fri over 0.

Og til sidst skal jeg bruge værdierne af kolonnerne staevne og 50fri.

Hvordan klarer jeg den?!?
Avatar billede pidgeot Nybegynder
05. februar 2006 - 21:22 #1
Ingen ide om Access kan klare den SQL, men det her er lige hvad der falder mig ind:

'SELECT svoemmer, staevne, 50fri FROM tabel WHERE 50fri=(SELECT MIN(50fri) FROM tabel WHERE 50fri>0 AND svoemmer=' + svoemmer + ') AND svoemmer=' + svoemmer

Hvis din svoemmer-variabel er et tal, skal du naturligvis bruge inttostr() rundt om variabelinstanserne.
Avatar billede lubker Nybegynder
05. februar 2006 - 22:05 #2
Det giver desværre ikke rigtig noget resultat. Har taget et print af sql kaldet:
SELECT * FROM resultater WHERE 50fri=(SELECT MIN(50fri) from resultater WHERE 50fri>0 AND svoemmer='26

Kommer med følgende fejl:
Der er en syntaksfejl, fordi der mangler en operator i forespørgelsesudtrykket "50fri=(SELECT MIN(50fri) from resultater WHERE 50fri>0 AND svoemmer='26''"
Avatar billede pidgeot Nybegynder
05. februar 2006 - 22:08 #3
Nu skrev jeg det så som Delphi ville forvente at koden så ud, ikke som SQL ville...

SQL'en i sig selv ville være som følger (forudsat at svoemmer=26):
SELECT svoemmer, staevne, 50fri FROM resultater WHERE 50fri=(SELECT MIN(50fri) FROM resultater WHERE 50fri>0 AND svoemmer=26) AND svoemmer=26
Avatar billede lubker Nybegynder
06. februar 2006 - 09:45 #4
Ja, det ved jeg.
Har prøvet med dette uden noget resultat. Kan du se hvad der er galt?
  D1.CommandText := 'SELECT svoemmer, staevne, 50fri FROM resultater WHERE 50fri=(SELECT MIN(50fri) FROM resultater WHERE 50fri>0 AND svoemmer='''+form1.svoemmerid.Caption+''') AND svoemmer='''+form1.svoemmerid.Caption+'''';

Den viser følgende fejl: "Der er en syntaksfejl, fordi der mangler en operator i forespørgselsudtrykket "100fri""
Avatar billede tonnybrandt Nybegynder
06. februar 2006 - 12:42 #5
Mangler der ikke en parentes slut tilsidst i udtrykket ??
Avatar billede tonnybrandt Nybegynder
06. februar 2006 - 12:45 #6
Sorry, nej den er der jo, lidt inde i linien.
Avatar billede tonnybrandt Nybegynder
06. februar 2006 - 14:00 #7
Prøv at se om denne sql virker:

select svoemmer, staevne, min(50fri) from resultater where 50fri > 0 and svoemmer = 26 group by svoemmer, staevne

Bruger man dit Dephi eksempel, burde linien så se således ud:

  D1.CommandText := 'SELECT svoemmer, staevne, MIN(50fri) FROM resultater WHERE 50fri > 0 AND svoemmer='''+form1.svoemmerid.Caption+'''
Avatar billede tonnybrandt Nybegynder
06. februar 2006 - 14:10 #8
Ups, i ovenstående manglede "group by" sætningen.

D1.CommandText := 'SELECT svoemmer, staevne, MIN(50fri) FROM resultater WHERE 50fri > 0 AND svoemmer='''+form1.svoemmerid.Caption+''' group by svoemmer, staevne';
Avatar billede lubker Nybegynder
06. februar 2006 - 17:40 #9
Den viser følgende fejl: "Der er en syntaksfejl, fordi der mangler en operator i forespørgselsudtrykket "MIN(50fri)"
Avatar billede arne_v Ekspert
06. februar 2006 - 17:45 #10
proev

MIN([50fri])
Avatar billede lubker Nybegynder
06. februar 2006 - 17:52 #11
Den viser følgende fejl: "Der er en syntaksfejl, fordi der mangler en operator i forespørgselsudtrykket "50 fri > 0 AND svoemmer = '11''"
Avatar billede arne_v Ekspert
06. februar 2006 - 18:05 #12
[50fri] > 0
Avatar billede lubker Nybegynder
06. februar 2006 - 18:10 #13
Nu slap jeg da i hvert fald for den fejl, men får desværre en ny:
"Elementet kan ikke findes i den samling, der svarer til den anmodede navn eller ordenstal".
Avatar billede arne_v Ekspert
22. april 2006 - 23:25 #14
kommet videre ?
Avatar billede lubker Nybegynder
23. april 2006 - 09:33 #15
Ja, men er da kommet helt fra det igen.
Dem der gerne vil have point må lægge et svar.
Avatar billede lubker Nybegynder
24. august 2006 - 10:10 #16
Lukker
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
Kurser inden for grundlæggende programmering

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