moelle
Goto Top

SQL-Abfrage, die das Alter ermittelt anhand des Geburtsdatums

[Edit Biber] Titel angepasst. Siehe unten [/Edit]

Hallo,

ich habe folgendes Problem, ich habe eine Access Datenbank in der Namen und die Geburtsdaten drin enthalten sind.
Ziel ist das aktuellle Alter in Jahren durch eine Abfrage zu ermitteln. Max Müller 01.01.1900 Alter ? Um das Alter zu ermitteln brauche ich eine Lösung????

Wie kann ich das realiseren???

Brauche Hilfe!

e58745b58a9da3842481b935ea3ac071-unbenannt

Anhand des Geburtsdatum des Kindes soll jetzt das tatsächliche Alter in Jahren in einer neuSpalte/Feld angezeigt werden!

Content-Key: 60087

Url: https://administrator.de/contentid/60087

Printed on: April 20, 2024 at 02:04 o'clock

Member: jato11
jato11 May 29, 2007 at 14:40:15 (UTC)
Goto Top
Hallo Moelle,
Wieso denn eine Erstellungsabfrage?
wie soll denn das Alter aussehen Tage, Monate, Jahre?
Wenn Du ein Feld erzeugst "x:Datum()-[Geburtsdatum]" erhälst Du die Anzahl der Tage.
Für die Anzahl der Jahre musst Du das Datum mit "Datteil" zerlegen.

Viele Grüße
Torsten
Member: jato11
jato11 May 29, 2007 at 14:57:56 (UTC)
Goto Top
Mit DatDiff geht es auch.
Da hat M$ was zu geschrieben
http://support.microsoft.com/default.aspx?scid=kb;de;D37560
Member: Biber
Biber May 29, 2007 at 20:07:20 (UTC)
Goto Top
Moin Moelle,

bitte wirf mal einen Blick auf folgende Site Profilieren mit Rechtschreibung und gab mal bitte Feedback, ob Dir irgendetwas davon bekannt vorkommt.

Falls ja, bring mal bitte Deine Frage in eine forums-, biber- und nettiquette-verträgliche Form. Danke.

Mit reinem M$-Access-SQL geht es etwas stressärmer... was M$ in diesem Beispiel zusammengeschrotet hat, finde ich ja nicht so motivierend...
...ausgerechnet die machen Code-Vorschläge...*gngngngn

Meine Variante (ich sach mal, die Felder heißen "Name" und "Burzeltach")
SELECT Name,  int ((now() -burzeltach)/364.3) as Alter 
from Deinetabelle;

Die im Schnitt 364.3 als durchschnittliche Tagesanzahl pro Jahr sind nur ein gefühlter Näherungswert - ich hab mir nicht die Mühe gemacht, wikipedia o.ä. zu befragen. Ggf anpassen.

Die "Esrtellungsabfrage" im Titel ändere ich schon mal um in "Abfrage".

Gruß
Biber
Member: Moelle
Moelle May 30, 2007 at 08:39:27 (UTC)
Goto Top
Hallo erstmal Danke für eure Tipps ich habe meinen Beitrag noch mal editiert und einen Ausschnitt der Tabelle hinzugefügt. Die Tabelle in Accrss heißt Grunddaten. Auch dieser Tabelle Grunddaten soll ich ein FEld hinzufügen (ALter) Dies soll errrechnet werden aus dem FEld Geburtsdatum des Kindes.

Bisher habe noch keine Lösung gefunden!!!!
Member: Biber
Biber May 30, 2007 at 09:13:41 (UTC)
Goto Top
Moin Moelle,

wenn Du nicht aufhörst mit den 4 Ausrufungszeichen und den 4 Fragezeichen am Ende der Sätze, dann nehm ich Dir die Tastutur weg.

Dennoch danke fürs Editieren.

Abgesehen davon:
[Ich unterstelle jetzt mal, dass die Tabelle "Grunddaten" heißt und das Feld mit dem Geburtsdatum des Kindes "Geburtsdatum_des_Kindes".
SELECT Grunddaten.*, 
int((now()-Geburtsdatum_des_Kindes)/((#31-12-1999# - #01-01-1900#) / 100)) AS [Alter]
FROM Grunddaten;

Bei der Berechnung, wieviele Tage wohl ein Jahr im Durchschnitt hat, habe ich mich gestern ein wenig blöd angestellt, sorry.
Jetzt berechne ich die Summe aller Tage in 100 Jahren (1.1.1900-31.12.1999) und teile das durch 100. Raus kommt dann 365,23.
Hier nochmal eine Debug-Abfrage zum besseren Verständnis:
SELECT Grunddaten.*, 
int((now()-Geburtsdatum_des_Kindes)/((#31-12-1999# - #01-01-1900#) / 100)) AS [Alter],
 ((now()-Geburtsdatum_des_Kindes)/((#31-12-1999# - #01-01-1900#) / 100 )) AS [Alter2],
(#31-12-1999# - #01-01-1900#) / 100 as TageProJahr
FROM Grunddaten;

Gruss
Biber
Member: Moelle
Moelle May 30, 2007 at 10:23:17 (UTC)
Goto Top
Mal wieder Vielen Dank,

Ich verspreche dir keine !!!! mehr zu verwenden.

Ich habe wenig Ahnung von SQL
Folgendes habe ich durchgeführt

Eine neue Abfrage erstellt und dann die SQL Anweisung eingefügt.
Nach Ausführen der Abrage kommt die Meldung Parametrwert eingeben Geburtsdatum_des_ Kindes
Member: Biber
Biber May 30, 2007 at 11:10:54 (UTC)
Goto Top
Moin Moelle,

dann danke für das Unterdrücken der Ausrufungszeichen - und Du wirst sehen, Du bekommst auch Antworten ohne diese. Wir wissen alle, dass die Fragen für den Fragesteller wichtig sind und nehmen das ernst.

So, mit dem Statement sind wir schon nah dran - wir müssen nur noch den tatsächlichen Namen des Feldes (das oben in Deinem Screenshot nur teilweise angezeigt wird) einsetzen.
Bitte öffne dazu die Tabelle "Grunddaten" im Entwurfmodus (mit der Maus auf die Tabelle, rechte Maustaste -> "Entwurfsansicht"), gehe auf das Feld nach Adresse_PLZ, das irgendwie mit "Geburtsdatum d" anfängt, markier das und kopiere Dir diesen Namen mit STRG-C.

Gehe wieder in Deine neu erzeugte Abfrage, markiere dort "Geburtsdatum_des_Kindes" und Drücke STRG-V.
Füge vor und nach dem Namen noch eine EckigeKlammer-Auf bzw -Zu ein ("[" und "]").

Dann sollte es fliegen.

Gruß
Biber
Member: Moelle
Moelle May 30, 2007 at 12:09:36 (UTC)
Goto Top
Well done, alles OK hat geklappt, ich hatte beim Kopieren ein Zeichen vergessen.
Jetzt ging es. Das habe wir in meiner damaligen SQL Schulung nciht gemacht. Ist aber auch schon ein bißchen her.

Ich glaub ich sollte mal wieder etwas intensiver damit befassen.

Nochmals vielen Dank und dickes Ausrufezeichen
Member: Biber
Biber May 30, 2007 at 12:47:52 (UTC)
Goto Top
Freut mich, moelle,

Nochmals vielen Dank
Gern geschehen.
und dickes Ausrufezeichen
Aber nur eines bitte.... face-wink

Ich schliesse den Beitrag mal.

Grüße
Biber