Moderator |
|
Je wilt de meest recente datums hebben van datums die groter zijn dan een bepaalde waarde.
Misschien werkt het volgende, al weet ik niet zeker of je op aliassen kunt sorteren:
SELECT l.*, DAYOFMONTH(l.datum) AS dag, MONTH(l.datum) AS maand
FROM leden l
WHERE dag > DAYOFMONTH(CURDATE())
AND maand > MONTH(CURDATE())
ORDER BY maand, dag
LIMIT 0, 5
SELECT l.*, DAYOFMONTH(l.datum) AS dag, MONTH(l.datum) AS maand FROM leden l WHERE dag > DAYOFMONTH(CURDATE()) AND maand > MONTH(CURDATE()) ORDER BY maand, dag LIMIT 0, 5
Edit: woeps, dit klopt nog niet helemaal - hold on.
Je kunt niet sorteren op aliassen, en je moet rekening houden met verjaardagen die in dezelfde maand vallen.
De query wordt aldus:
SELECT DAYOFMONTH(l.datum) AS dag, MONTH(l.datum) AS maand
FROM leden l
WHERE
(
DAYOFMONTH(l.datum) > DAYOFMONTH(CURDATE())
AND
MONTH(l.datum) = MONTH(CURDATE())
)
OR
(
MONTH(l.datum) > MONTH(CURDATE())
)
ORDER BY MONTH(l.datum), DAYOFMONTH(l.datum)
LIMIT 0, 5
SELECT DAYOFMONTH(l.datum) AS dag, MONTH(l.datum) AS maand FROM leden l WHERE ( DAYOFMONTH(l.datum) > DAYOFMONTH(CURDATE()) AND MONTH(l.datum) = MONTH(CURDATE()) ) OR ( MONTH(l.datum) > MONTH(CURDATE()) ) ORDER BY MONTH(l.datum), DAYOFMONTH(l.datum) LIMIT 0, 5
|