PDA

View Full Version : Query Serienbrief sobald eine Person 32 Jahre wird



Seiten : [1] 2

mademi
09-11-20, 20:20
Hallo Zusammen
Ich bin gerade daran ein Query zu erstellen und stehe vor einem Problem.
Zuerst aber noch zu der Ausganglage:
Sobald eine Person 32 Jahr wird, möchten wir einen bestimmten Brief versenden (machen wir mit einem Serienbrief). Der Serienbrief wird jeweils im Vormonat verschickt. Der Text würde folgendermassen lautet: " am 22.11.2020 werden Sie 32 Jahre alt".

Wie kann ich mit einem Query ausrechnen, wann eine Person 32 Jahr alt wird? Geburtstag, Adresse, Korrespondenzsprache, usw. sind alle vorhanden.

Gruss
mademi

Fuerchau
09-11-20, 22:30
Pie mal Daumen:

(days(current days) - days(birthdate)) / 365.25

Andreas_Prouza
10-11-20, 08:28
Hi Mademi,

values (date('1991-01-01') + 32 years)
liefert dir: 2023-01-01
Also am 2023-01-01 wird diese Person 32 Jahre alt.

lg Andreas

mademi
10-11-20, 12:39
Danke für die Antworten, jedoch erhalten ich einen Wert in der neuen Ergebnis, mit dem ich nicht viel anfangen kann (+++++++)

Zeile ....+....1....+....2.
Geb.Datum GEB
000001 730608 03.05.26
000002 880226 ++++++++
000003 551208 ++++++++
000004 530908 ++++++++
000005 650608 ++++++++

Das Ergebnisfeld habe ich so formatiert:
Feld Ausdruck Spaltenüberschrift Länge Dez
GEB date(ADBDDT) + 25 years

Gruss
Mademi

B.Hauser
10-11-20, 12:55
So wie es aussieht handelt es sich bei Deinem Datum um ein numerisches Datum im Format 2-st. Jahr, 2-st. Monat, 2-st. Tag.
Du musst zunächst das numerische Datum in ein echtes Datum verwandeln.
Sofern Du mit SQL arbeitest, kannst Du das numerische Datum wie folgt in eine echte Zeitmarke konvertieren:

Timestamp_Format(Digits(NumDat), 'YYMMDD')

Wenn nur das Datum brauchst, musst Du noch DATE drumherumsetzen.

Date(Timestamp_Format(Digits(NumDat), 'YYMMDD'))

Wenn Du allerdings mit Query/400 arbeitest, was ich stark vermute, wird das ganze ungleich schwieriger, da es weder eine Timestamp_Format-Funktion noch eine Case-Anweisung gibt.

Birgitta

KingofKning
10-11-20, 12:59
So wie es aussieht handelt es sich bei Deinem Datum um ein
Wenn Du allerdings mit Query/400 arbeitest, was ich stark vermute, wird das ganze ungleich schwieriger, da es weder eine Timestamp_Format-Funktion noch eine Case-Anweisung gibt.

Birgitta

Na ja, er kann sich doch ne kleine View basteln wo alles drin steht. Oder wenn das nicht klappt mit Excel arbeiten und dann allen Leuten vorher kündigen........ ;-)

GG 3854

mademi
10-11-20, 13:25
Es ist leider AS400 heheh
Ich komme zu keinem Ergebnis. Ich könnte die Datei im Excel bearbeiten, jedoch fände ich es schöner, dieses Problem im Query zu lösen.

Gruss

Robi
10-11-20, 14:06
nimm qmqry statt query.
da hast du SQL zur Verfügung.

und beschreibe mal vernünftig wie die Daten sind, die du hast.

tag / monat jahr2 / Jahr4 seperat,
jjmt
jmt
tmjj
tmj
DATUM
...

Da macht der lieber Excel .... kopfschüttel

Fuerchau
10-11-20, 15:12
Oder baue eine View, die kannst du dann mit Query bearbeiten.

KingofKning
11-11-20, 07:38
Oder baue eine View, die kannst du dann mit Query bearbeiten.

Ich befürchte er weiß nicht was das ist, sonst hätte er auf mein Post ne andere Antwort gegeben.