Het volgende probleem doet zich voor, ik heb een tabel met de volgende gegevens:
Wat ik nu wil is in (het liefst) één SQL query het volgende ophalen:
Ik heb het met de volgende query geprobeerd:
Dan geeft hij de melding dat Punten niet in een aggregate functie zit. Dit klopt want hij zou niet weten wat hij voor punten terug moet geven natuurlijk. MAAR de combinatie User+Datum is uniek in deze tabel (primary key). Dus dan is er altijd maar één rij die overeenkomt. Maar hoe krijg ik die nu terug?
code:
1
2
3
4
5
6
7
| Datum Punten User 01-01-06 1 A 02-01-06 3 A 03-01-06 5 A 01-01-06 1 B 02-01-06 2 B 03-01-06 4 B |
Wat ik nu wil is in (het liefst) één SQL query het volgende ophalen:
code:
Oftewel, de rows met de hoogste datum van alle users moet 1x gereturned worden. 1
2
3
| Datum Punten User 03-01-06 5 A 03-01-06 4 B |
Ik heb het met de volgende query geprobeerd:
code:
1
| SELECT `User`, max(`Datum`), `Punten` FROM `Users` GROUP BY `User` |
Dan geeft hij de melding dat Punten niet in een aggregate functie zit. Dit klopt want hij zou niet weten wat hij voor punten terug moet geven natuurlijk. MAAR de combinatie User+Datum is uniek in deze tabel (primary key). Dus dan is er altijd maar één rij die overeenkomt. Maar hoe krijg ik die nu terug?