Robert Großkopf schrieb:
Hallo Bernhard,

die Datenübernahme von der Tabelle in die Datenbank hat funktioniert. In
der Tabelle habe ich folgende Formel für eine Altersberechnung:
_jahre("geb.-datum";heute();1)_ ; damit wird ganz einfach eine
Alterszahl berechnet.
Frage: Wie kann ich diese Berechnung in der Datenbank ausführen? Bei der
Erstellung habe ich kein "berechnungsfeld" gefunden.

Du meinst vermutlich die Erstellung von Tabellen. Die sind in Datenbanken auch nicht zum Berechnen gedacht. Sie sollen einzig und allein Daten aufnehmen.

Das Berechnen kannst Du zumindest teilweise über Abfragen regeln, so auch das Berechnen des Alters.

Angenommene Tabelle:
ID      Name    GebDat
Aus dem GebDat (Geburtsdatum) willst Du das Alter berechnen:
Abfrage
SELECT "Name", CASEWHEN( DAYOFYEAR( "GebDat" ) > DAYOFYEAR( NOW( ) ), DATEDIFF( 'yy', "GebDat", NOW( ) ) - 1, DATEDIFF( 'yy', "GebDat", NOW( ) ) ) AS "Alter" FROM "Tabelle"

Warum so kompliziert? Ich habe unten einfach den Text aus einer Erklärung zu einer Beispieldatenbank kopiert:

DATEDIFF( 'yy', "GebDat", NOW( ) ) ergibt den Unterschied zwischen dem Datum aus „GebDat“ und dem heutigen Datum. Allerdings werden, zumindest bei der HSQLDB, auf diese Art und Weise nur die Jahreszahlen ('yy') verglichen. Liegt das Geburtsdatum im Vorjahr, so erscheint auf diese Weise auf jeden Fall eine „1“ bei der Berechnung – auch wenn heute gerade der 1.1. ist und die Person am 31.12. geboren wurde. Daraus ergibt sich ein etwas umfassenderer Aufbau der Berechnung für das momentane Alter: CASEWHEN( DAYOFYEAR( "GebDat" ) > DAYOFYEAR( NOW( ) ), DATEDIFF( 'yy', "GebDat", NOW( ) ) - 1, DATEDIFF( 'yy', "GebDat", NOW( ) ) ) für den Fall, dass der Tag, gezählt als Tag im Jahr, von dem Geburtsdatum größer ist als der Tag heute, soll von der Jahresdifferenz 1 abgezogen werden. Ansonsten ist die Jahresdifferenz in das Feld zu schreiben.

Gruß

Robert

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Hallo Robert,
danke für die Hilfe, aber ging in die Hose. Ich habe den Term kopiert und dann in das Feld bei "alter" eingetragen. Trotz Anpassung an meine Schreibweise habe ich nur die Formel in der Anzeige. Warum so kompliziert????????, ich habe ja nicht mit so etwas gerechnet, "dachte" eben eine Anzeige für runde (40,45,50 etc) Geburtstage bzw. Daten für Hochzeitstage. Aber das ist erst mal gestrichen, vielleicht später (2-3Jahre) wenn ich einiges gelernt haben sollte.

Danke und Gruß
Bernhard

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an