Finde de næste fem fødselsdage - udvidet version
Jeg har oprettet dette spørgsmål igen for at kunne give flere point til den heldige vinder - i kan se det oprindelige spørgsmål på http://www.eksperten.dk/spm/308507.Kort ønskede jeg bare en SELECT, der fandt de næste fem fødselsdage i en lille database over personer hvor disse simpelthen hver havde en 'date' tilknyttet (dennes navn er DATO). Mirakulix kom op med den her superkode:
select
id,
navn,
dato,
IF (
DAYOFYEAR( CONCAT( '2004-', MONTH(NOW()),'-', DAYOFMONTH(NOW()) )) <=
DAYOFYEAR( CONCAT('2004-', MONTH(DATO),'-', DAYOFMONTH(DATO) ))
,
DAYOFYEAR( CONCAT('2004-', MONTH(DATO),'-', DAYOFMONTH(DATO) ))
-
DAYOFYEAR( CONCAT( '2004-', MONTH(NOW()),'-', DAYOFMONTH(NOW()) ))
,
366 -
DAYOFYEAR( CONCAT( '2004-', MONTH(NOW()),'-', DAYOFMONTH(NOW()) ))
+
DAYOFYEAR( CONCAT('2004-', MONTH(DATO),'-', DAYOFMONTH(DATO) ))
) AS DAGETILDAG
from
fodselsdage
order by DAGETILDAG LIMIT 5;
Jeg er så bare stødt ind i et problem - nogen af mine personer i adresse kartoteket har NULL som fødselsdato - eller rettere jeg kender ikke deres fødselsdato, og DAGETILDAG returnerer bare 0 i deres tilfælde... Jeg ønsker altså at den tager højde for dette og går uden om de personer der har NULL som fødselsdato...
Jeg gætter på der skal placeres en WHERE et eller andet sted - men kan ikke helt greje det...
Nogen gode forslag?