[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Zitat Zitat von Fuerchau Beitrag anzeigen
    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.

  2. #2
    Registriert seit
    May 2007
    Beiträge
    295

    Red face

    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:
    Code:
    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 :-)
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  3. #3
    Registriert seit
    Jun 2019
    Beiträge
    26
    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

  4. #4
    Registriert seit
    Jun 2020
    Beiträge
    5
    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

  5. #5
    Registriert seit
    Jun 2020
    Beiträge
    5
    Würde auch funktionieren!!!! Danke dir.
    Gruss

Similar Threads

  1. Bei Dateierstellung per SQL wird eine View gelöscht
    By Jenne in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 19-12-19, 17:49
  2. Antworten: 4
    Letzter Beitrag: 19-07-16, 11:44
  3. Antworten: 1
    Letzter Beitrag: 28-10-14, 16:16
  4. Wie wird man eine JVM wieder los?
    By dschroeder in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 27-11-13, 13:36
  5. Warum wird eine Kopie einer log. Datei erstellt
    By hs in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 27-09-01, 11:25

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •