Avatar billede wilweb Nybegynder
09. januar 2004 - 20:43 Der er 8 kommentarer og
3 løsninger

Hvorfor select'er denne her 15 fra databasen

Hvorfor select'er denne her 15 fra databasen og ikke kun 10?

pDeadline er et dato felt i databasen.

strSQL = "SELECT TOP 10 * FROM opgaver ORDER BY opgaver.pDeadline DESC;"

Den udskriver i pDeadline (Dato) orden men tager 15 records med. De 5 første er forskellige, men de 10 sidste har samme pDeadline (dato 09-01-2004)
Avatar billede thesurfer Nybegynder
09. januar 2004 - 20:47 #1
Måske tager den de 5-6 der er der, og tager den sidste af dem de resterende gange :)

Med andre ord: er du sikker på at der er midst 15 poster?

Jeg ved ikke om den kan finde på sådan noget.. men man ved aldrig med computere..
Avatar billede wilweb Nybegynder
09. januar 2004 - 20:51 #2
der er 33 poster i databasen og sorterer jeg på et andet felt fx. id som er autonum. så viser den kun 10, meget mærkeligt
Jeg tror derfor det har et eller andet at gøre med at det er et dato felt?
Avatar billede goose Nybegynder
09. januar 2004 - 20:54 #3
Det er nok fordi der er ens deadline på mange opgaver, prøv evt. og sorter dem ud fra id nummeret istedet.

/Goose
Avatar billede goose Nybegynder
09. januar 2004 - 20:56 #4
- altså ORDER by ID istedet for ORDER by opgaver.pDeadline

Jeg har selv før været ude for det samme, og hvis der er mange poster der har samme værdi som det man ORDER by, så ser den bort fra om der evt. skulle være mere end f.eks. 15.

/Goose
Avatar billede wilweb Nybegynder
09. januar 2004 - 21:04 #5
Goose:> Det bliver lidt noget rod! men det kan jo være man må acceptere det, selv om det ogås er noget rod.

Jeg tror jeg kan løse det ved at lave dato feltet 'Date()' om til 'Now()'
Det tror jeg lige jeg prøver!
Avatar billede goose Nybegynder
09. januar 2004 - 21:10 #6
Det er selvfølgelig en mulighed, det det gælder om er, at der ikke er for mange ens data du vælger ORDER BY og løsningen så er at indflette noget tid i form af timer, minutter og sekunder kunne være en mulighed.


/Goose
Avatar billede wilweb Nybegynder
09. januar 2004 - 21:14 #7
Ja, det virkede, med at ændre til standard tid og dato format!
Så jeg bruger min egen løsning, håber ikke at det skuffer nogle :>
Avatar billede eagleeye Praktikant
09. januar 2004 - 22:59 #8
Du kan også havde to ORDER BY's på så den første order by date og så på ID:

strSQL = "SELECT TOP 10 * FROM opgaver ORDER BY opgaver.pDeadline DESC, ID DESC;"

men hvis du laver date om til now er løser det også problemet ;)
Avatar billede coltau Juniormester
11. januar 2004 - 11:12 #9
Kommandoen TOP 10 betyder "Jeg vil kun have de 10 STØRSTE records" og ikke "Jeg vil kun have de 10 FØRSTE records"

Det betyder at når tabellen indeholder dupletter af netop den 10'ede redord så vises alle dupletterne også og så får man jo netop alle de 10 største. :-)
Avatar billede coltau Juniormester
11. januar 2004 - 11:19 #10
Sorry - det var ikke et svar.
Avatar billede eagleeye Praktikant
11. januar 2004 - 13:44 #11
Det ikke helt rigtigt, det betyder ikke de 10 STØRESTE det kan lige så vel være de mindste eller nogle midt i.

TOP 10 betyder de 10 første dog men en et lille men. TOP vælger ikke imellem ens værdier.

Et eks, hvi man har dette og bruge ORDER BY kolonne:
Kolonne
A
B
B
C
C

Hvis man tager TOP 3 vil den give A, B, B
Hvis man tager TOP 4 vil den give A, B, B, C, C  fordi der er flere rækker med C i kolonne og hvis man ikke definere mere i sin ORDER BY vil de to rækker være ens for TOP og de bliver begge taget med.
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