nächster Geburtstag - SQL Abfrage

Hallo!

Ich suche eine SQL-Abfrage die mir die nächsten 10 Geburtstage ausgibt.

Konkret:
Dabei ist wurden die Geburtsdaten in einer Adressenliste mit dem Feld Geburtstag als ‚Geburtstag DATE‘ in der Tabelle definiert (YYYY-MM-DD).

Bei manchen Leuten ist das Geburtsjahr nicht bekannt, und wird somit als „0000-MM-DD“ gespeichert. Wäre schön, wenn die Abfrage sich also rein auf den Monat und Tag als Differenz zum aktuellen Datum ohne Berücksichtigung des Jahres berechnet werden könnte!

Vielen Dank für eure Antworten im Vorraus,
Knut

Hallo,
folgendes sollte in etwa hinkommen, habs aber nicht getestet.

select * from (
select rownum, tabelle.* from Tabelle
where trunc(sysdate) [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Peter!

folgendes sollte in etwa hinkommen, habs aber nicht getestet.

Ich kann mir nicht vorstellen, dass dabei das gewünschte Ergebnis rauskommt: Der Select liefert 10 beliebige Datensätze, bei denen das Datum (Tag/Monat) grösser als das aktuelle Datum ist, abgesehen davon, dass der SELECT nur mit Oracle funktioniert, ich aber eher nicht das Gefühl habe, dass unser werter Fragesteller auf eine Oracle DB zugreifen will (Hinweis an Knut: Wenn du uns sagen würdest, auf welcher DB das denn laufen soll, dann wäre uns sehr geholfen!)

Mit der Änderung unten würde es zumindest auf Oracle das richtige Ergebnis liefern:

select * from (
select rownum, tabelle.* from Tabelle
where trunc(sysdate) order by to_char(geburtstag, ‚MMDD‘)
) a
where a.rownum

Hallo Martin!

(Hinweis an Knut: Wenn du uns sagen würdest, auf welcher DB
das denn laufen soll, dann wäre uns sehr geholfen!)

Soll unter mySQL laufen.

Viele Grüße,
Knut

Soll unter mySQL laufen.

Hallo Knut!

Leider kann ich dir da nicht weiterhelfen (bin Oracle-Fachidiot), aber soweit ich weiss gibt’s in mySQL auch eine Gruppenfunktion, die nur die „besten“ x Resultate liefert. Wenn du schon eine mySQL-Version hast, die Subselects und Select from Select unterstützt, dann sollte aber das obenstehende Statement auch funktionieren, lediglich rownum wird dann bei dir wohl anders heissen (ist eine Funktion, die die fortlaufende Nummer der jeweiligen Zeile angibt).

Gruß
Martin

Hallo!

Ich suche eine SQL-Abfrage die mir die nächsten 10 Geburtstage
ausgibt.

(snip)
Vielen Dank für eure Antworten im Vorraus,
Knut

Hallo Knut,

etwas spät auch noch’n Gedanke von mir: wenn die gewünschte Abfrage am 30. Dezember eines Jahres läuft, sollen dann die Datensätze mit Geburtsdatum Januar etc. wieder mitberücksichtigt werden, damit man auf die 10 Ergebnissätze kommt?

Wenn ja, kannst Du dir 'nen Wolf selektieren. Das Statement möchte ich nicht wirklich sehen. Weiterhelfen kann ich auch nicht, bin, wie andere, Oraclist. Darin würde ich die Aufgabe einer Programmroutine überlassen.

Viel Glück,
Guido