PDA

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



Seiten : 1 [2]

prsbrc
11-11-20, 08:24
Rein im Query wird die Anforderung nicht so leicht umsetzbar sein.
Schon alleine wegen dem 2-Stelligen Jahr.
Hier sollte dir jemand mit SQL-Wissen eine sg. View bauen welche die gesamten Datumsberechnungen enthält und auf welche du dann mit Query aufsetzen kannst.

Schnelles 'dirty' Beispiel:


CREATE OR REPLACE VIEW SCHEMA.GEB_DATE AS (
SELECT CAST(
CASE WHEN LEFT(DIGITS(NumDat), 2) > RIGHT(YEAR(CURRENT_DATE), 2)
-- Falls die letzten beiden Stellen des Geburtstagsjahres größer dem aktuellen sind dann wird es vermutlich 19.. sein
THEN DATE(TIMESTAMP_FORMAT(DIGITS(NumDat), 'RRMMDD'))
ELSE DATE(TIMESTAMP_FORMAT(DIGITS(NumDat), 'YYMMDD')) END
+ 32 YEARS AS DECIMAL(8, 0)) GEB32
FROM SCHEMA.TABLE)


Für den Moment würde es funktionieren.
Wie es dann aber in ein paar Jahrzehnte ausieht weiß ich nicht :-)

jotho
11-11-20, 09:56
Hallo
so müsste es auch gehen (und auch so bei mir in Gebrauch)

Basis 6stellig (zb. yymmdd ):

Ergebnisfelder definieren :
jahr substr(digits(yymmdd), 1, 2)
monat substr(digits(yymmdd), 3, 2)
tag substr(digits(yymmdd), 5, 2)
dat_a tag!!'.'!!monat!!'.'!!'20'!!jahr
dat_b date(dat_a)

dat_a hat automatische Länge 1 (alpha)
dat_b hat automatisch Länge 8, Datum (L)

mit dat_b kannst du jetzt rechnen = - x days, + x years ...

Gruss
Jotho

mademi
11-11-20, 16:10
Hallo Zusammen
Ich bin vor einigen Minuten zu einem erwünschten Resultat gekommen und wollte euch dies mitteilen.
Folgende Formatierungen habe ich im Menüpunkt Ergebnisfeld definieren vorgenommen:

BDATE digits(ADBDDT)
--------
BDATE2 substr(Bdate, 6, 2) !! '.' !!
substr(bdate, 4, 2) !! '.' !!
substr(bdate, 2, 2)
--------
BDATE3 date(BDATE2)
--------
BDATE4 Bdate3 + 25 years
--------

Ich bedanke mich für eure Unterstützung und euer Fachwissen. Ich bin ziemlich viel in diesem Forum unterwegs - bis anhin konnte ich jedes Problem mit Hilfe der erfassten Beiträgen lösen.

Gruss
Ademi

mademi
11-11-20, 16:11
Würde auch funktionieren!!!! Danke dir.
Gruss