Avatar billede dna Nybegynder
22. august 2001 - 01:37 Der er 10 kommentarer og
1 løsning

SQL problem..

Hejsa alle.. jeg vil gerne have en SQL som henter mine sidste 30 poster ud af en tabel.. (dette har jeg faktisk allerede) - men, kan man ikke i samme SQL finde ud af hvad \"max\" af et felt er ? Altså hvis vi ser på en tabel med folks alder.. så kan den finde hvad den højeste alder er ??

dna

P.S. jeg bruger mySQL
Avatar billede tmceu Praktikant
22. august 2001 - 01:39 #1
Normal syntaksen er MAX(feltnavn) og den kan du sagtens medtage i dit eksisterende statement
Avatar billede netsrac Praktikant
22. august 2001 - 01:40 #2
select felt1, felt2, max(alder) as alder order by alder desc limit 0,30
Avatar billede dna Nybegynder
22. august 2001 - 02:19 #3
jamen.. jeg skal vælge * og stadig lave en max ... er det muligt ?

dna
Avatar billede ldanielsen Nybegynder
22. august 2001 - 09:07 #4
Du skal bruge to SQL-sætninger.

SELECT TOP 30 * FROM Tabel ORDER BY Dato DESC

SELECT MAX(Alder) AS maxAlder FROM Tabel

Men det er en dum ide at bruge *. Det vil altid være hurtigere at nævne alle felterne, og det er jo også sjældent at du har brug for dem alle
Avatar billede tmceu Praktikant
22. august 2001 - 10:33 #5
SELECT *, MAX(FELT) FROM TABEL

- jeg har ikke testet dette på MySQL, men det virker på alle andre databaser.
Avatar billede dna Nybegynder
22. august 2001 - 13:57 #6
sql = \"select dato, max(antal) as maxi from info where sideID = \'\"& request.querystring(\"id\") &\"\' ORDER BY dato LIMIT 0,30\"

Denne giver denne fejl:
[TCX][MyODBC]Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
Avatar billede ldanielsen Nybegynder
22. august 2001 - 16:16 #7
Derfor har du brug for to stk. SQL, to kald til databasen
Avatar billede dna Nybegynder
22. august 2001 - 16:37 #8
øv bøv.. jeg ville have haft det i en SQL ! Men, wtf, jeg lavede det i 2 stk, og så måtte jeg nøjes med den lappeløsning! *g*

dna
Avatar billede ldanielsen Nybegynder
22. august 2001 - 17:14 #9
Den er da god nok.

Men tak
Avatar billede tmceu Praktikant
22. august 2001 - 17:58 #10
Du kan prøve med SELECT FELT1, FELT2, MAX(FELT3) FROM TABEL GROUP BY FELT1, FELT2
Avatar billede ldanielsen Nybegynder
22. august 2001 - 19:56 #11
Så vil du for hver post få den højeste FELT3 for den gruppe af ens FELT1 og FELT2 den medtager.

I øvrigt vil den give en fejl, tror jeg, da FELT3 ikke er med i GROUP BY
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