Avatar billede cnr Nybegynder
02. juli 2009 - 13:40 Der er 7 kommentarer og
1 løsning

TOP i SQL virker kun ved bestemte værdier

Jeg har en query i access hvor jeg kun har brug for de 8 første poster. Det virker godt nok når jeg bruger de prædefinerede værdier i Access brugerfladen til at begrænse antallet af returnede poster, men går jeg ind i SQL editoren og ændre tallet efter TOP statementen til det antal jeg skal bruge, får jeg samtlig poster ud af queryen.

Nogle måder at komme rundt om det på?
Avatar billede terry Ekspert
02. juli 2009 - 16:12 #1
"Det virker godt nok når jeg bruger de prædefinerede værdier i Access .."

What predefind values?

"men går jeg ind i SQL editoren og ændre tallet efter TOP statementen til det antal jeg skal bruge, får jeg samtlig poster ud af queryen."

Your doing something wrong then.

Can we see an example of your data and your SQL?
Avatar billede cnr Nybegynder
02. juli 2009 - 21:54 #2
I den grafiske brugerflade kan jeg fx vælge de første 5 eller 10 poster, og det virker udemærket. går jeg nu over i SQL editoren, indeholder SQL sætningen syntaksen TOP 5 eller TOP 10. Ændre jeg tallet til det 8 tal jeg skal bruge, returner queryen alle poster.

Skal gerne copy/paste SQL sætningen ind i morgen
Avatar billede terry Ekspert
03. juli 2009 - 08:54 #3
That sounds very strange. Any chance of seeing your dB, or an example of what is neccessary (tables/query)

ekspertenATsanthell.dk
AT= @
Avatar billede cnr Nybegynder
03. juli 2009 - 09:09 #4
Hmmm - så skal jeg lige lave en lille minidatabase med samme opbygning.

Den automatisk generede SQL sætning starter

SELECT TOP 5 .....

og returner som den skal. Ændre jeg til

SELECT TOP 8 .....

får jeg samtlige poster. Ændre jeg så tilbage til fem tallet igen, virker den igen.

JEg tænkte på, kan jeg evt gå gennem VBA og slet poster bagfra i queryen, til der kun er 8 tilbage?
Avatar billede terry Ekspert
03. juli 2009 - 09:19 #5
If you hadnt said that it works OK with TOP 10 then I would have said that TOP x (x=some number)

doesnt always return x rows. If there is more than 1 row with the same value then the result show all of these.


You cant delete rows in a query like you can in a table, you have you have to alter the SQL so you only select those you want.

If you can send me just the table with data and explain what you want then I'll see if I can find a solution.
Avatar billede cnr Nybegynder
03. juli 2009 - 10:42 #6
Hmmm - jeg fandt ud af præcist det samme hvor jeg prøvede at genskabe fejlen i min test database. Desværre havde jeg bare præcis 10 poster i mine testdata, hvor jeg ikke havde lagt mærke til at de sidste var ligestillet :(

Så hvis du lige sender en svarpost, så giver jeg dig point når jeg er færdig med at hammer hovedet ind i væggen
Avatar billede terry Ekspert
03. juli 2009 - 10:54 #7
Ja der er meget varmt i dag :o)
Avatar billede terry Ekspert
03. juli 2009 - 10:55 #8
You can use

select DISTINCT TOP 8 ....

to make sure only get unique values
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