Avatar billede zaittam Nybegynder
23. august 2010 - 06:51 Der er 4 kommentarer

Order by - Group by

Jeg har en tabel der ser sådan her ud:

valuta
----
id
navn
timestamp
kurs

Som jeg fylder op med friske data vha. et cronjob en gang i døgnet. Det er dog ikke altid, at alle valutakurser er med i hver kørsel. En række kunne se sådan her ud:

0,SEK,1282508816,78.60

De data bruger jeg i forvejen - også de gamle. Så jeg sletter ikke ved insert. Men det jeg gerne vil nu, er, at hente en liste over den nyeste kurs på alle valuta. Jeg har prøvet med flg.:

SELECT navn,timestamp,id,kurs FROM valuta GROUP BY navn

Det er også udemærket, men så hentes den første kurs fra tabellen af hver valuta. Den skulle jo helst hente den sidste... Sorteret på enten timestamp eller id.

På forhånd tak :)
Avatar billede arne_v Ekspert
23. august 2010 - 10:48 #1
proev med:

SELECT navn,tid,kurs
FROM valuta v1
WHERE tid=(SELECT MAX(tid) FROM valuta v2 WHERE v1.navn=v2=navn)
Avatar billede zaittam Nybegynder
23. august 2010 - 12:37 #2
Mange tak Arne.

Med lidt tilretninger fik jeg flg. query til at virke:

SELECT navn,timestamp,kurs FROM valuta v1 WHERE timestamp=(SELECT MAX(timestamp) FROM valuta v2 WHERE v1.navn=v2.navn)

Hvis du smider et svar er der point til dig. :-)
Avatar billede arne_v Ekspert
23. august 2010 - 12:59 #3
kommer her
Avatar billede arne_v Ekspert
26. september 2010 - 20:58 #4
Så mangler du bare at acceptere svaret.
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
Computerworld tilbyder specialiserede kurser i database-management

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