Avatar billede mjl Nybegynder
12. oktober 2009 - 18:47 Der er 5 kommentarer og
1 løsning

Sidste record for hvert id

Hej ...

Jeg skal finde de sidste records for hvert id i en tabel.

Hver gang en bruger betaler kontingent, reg. det i tabellen, med brugerens unikke id-nr (brugerid) - hvis jeg kun skal kalde den sidste betaling for hvert unikke brugerid frem, hvordan gør jeg så det?

Tabellen er som følger :

id - navn - dato - brugerid - konto - beloeb

hilsen Martin
Avatar billede mjl Nybegynder
12. oktober 2009 - 19:25 #1
Jeg har f.eks.

4  Bolette Hansen  1255298400  4  Kontingent  840
5  Kim Ladefoged  1255218400  2  Kontingent  840
6  Kim Ladefoged  1255298400  2  Kontingent  841
7  Kim Ladefoged  1255298400  2  Kontingent  842

Så skal jeg kun bruge 4 og 7 da de er de sidste reg. for brugerid
Avatar billede arne_v Ekspert
12. oktober 2009 - 19:43 #2
Hvis nyere MYSQL så prøv:

SELECT *
FROM dintabel t1
WHERE dato=(SELECT MAX(dato) FROM dintabel t2 WHERE t2.brugerid=t1.brugerid)
Avatar billede mjl Nybegynder
12. oktober 2009 - 20:05 #3
Hejsa ...

Der er 8 records, og dit forslag henter ..

1,2,3,4,6,7 og udelader 5 og 8

1 Bolette Hansen 1255298400 4 Indmeldelses betaling 1000
2 Henny og Georg Jensen 1255298400 3 Indmeldelses betaling 1000
3 Kim Ladefoged 1255298400 2 Indmeldelses betaling 1000
4 Bolette Hansen 1255298400 4 Kontingent 840
5 Kim Ladefoged 1255218400 2 Kontingent 840
6 Kim Ladefoged 1255298400 2 Kontingent 841
7 Kim Ladefoged 1255298400 2 Kontingent 842
8 Kim Ladefoged 1254348000 2 Indmeldelses betaling 1000

Jeg skal kun bruge 2,4 og 7
Avatar billede arne_v Ekspert
12. oktober 2009 - 20:44 #4
Du har flere records med samme timestamp. Det lyder noget usandsynligt at de skulle lave flere betalinger indenfor samme sekund.

Men prøv så:

SELECT *
FROM dintabel t1
WHERE dato=(SELECT MAX(dato) FROM dintabel t2 WHERE t2.brugerid=t1.brugerid)
AND id=(SELECT MAX(id) FROM dintabel t3 WHERE t3.brugerid=t1.brugerid AND t3.dato=t1.dato)
Avatar billede mjl Nybegynder
12. oktober 2009 - 20:56 #5
Af hjertet tak ! Perfekt !

Læg venligst et svar !

hilsen Martin
Avatar billede arne_v Ekspert
12. oktober 2009 - 21:03 #6
svar
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