Jakob Andersen skrev:
> Har du prøvet at kigge på datadiff f.eks. vil nedenstående
> forespørgsel liste de næste der har fødelsdag i rækkefølge
>
> SELECT Navn FROM medlemmer ORDER BY Datediff('d', now(),
> Birth) ASC
Nej - ikke hvis Birth indeholder en fødselsdato med årstal.
Så vil ovenstående blot være en anden måde at sortere efter alder
på.
Man er nødt til at normalisere fødselsdatoerne så de har samme år -
eller bedre endnu, så de får det årstal hvor de næste gang har
fødselsdag (altså enten indeværende år eller indeværende år + 1)
Her er en testet løsning (Access 2000):
SELECT DateSerial ( Year(Now())
+ IIf(Date() <=
DateSerial(Year(Now()), Month([fdato]), Day([fdato])), 0, 1),
Month([fdato]), Day([fdato])) AS nextdato,
personer.navn
FROM personer
ORDER BY
DateSerial ( Year(Now()) + IIf(Date() <= DateSerial(Year(Now()),
Month([ fdato]), Day([fdato])), 0, 1), Month([fdato]),
Day([fdato]))
Ideen er at man bruger Dateserial til at lave en dato ud fra måned
og dag i fdato-feltet (der indeholder fødselsdato med årstal).
Årstallet sættes til det aktuelle år - Year(Now()) - plus et, i det
tilfælde at vi allerede har passeret personens fødselsdag i år
(iif-sætningen).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html