SQL/Oracle - Mindest- und Maxwert aus einer Zeile

Guten Tag,

meine Tabelle sieht so aus, das ich eine Kundennummer habe, sowie drei mögliche DAtumsfelder. Wann war der Kunde, respektive sein Auto zur letzten Wartung, wann wurde er zuletzt beraten oder wann hat er das letzte Infoschreiben bekommen: (sorry für die Formatierung, aber ich habe es nicht besser hinbekommen)

Kunde-Dat_Wartung–Dat_Beratung–Dat_Info
901—01.01.2001—12.03.2003----14.05.2006
902—16.11.2008—(null)--------12.01.2006

Ich benötige jetzt in meiner Tabelle zwei weitere Spalten, das früheste und späteste Kontaktdatum. Dh.

Kunde-Dat_Wartung–Dat_Beratung-Dat_Info----Früh--------Spät
901—01.01.2001—12.03.2003—14.05.2006–01.01.2001–14.05.2006
902—16.11.2008—(null)-------12.01.2006–12.01.2006–16.11.2008

Wie lautet dazu mein SQL?

Vielen Dank

Ingo

Hallo Ingo,

in Oracle kann man das decode Statement verwenden:

decode (dat1 und jetzt kommt die Kunst das Ganze mit drei Datumswerten zu schaffen :smile:


    decode(dat1
    Das Ganze ist aus dem Bauch heraus und nicht über Wahrheitstabelle geprüft, analog muss das Maximumsstatement aufgebaut werden.
    
    MfG Georg V.
    
    P.S: Würde mich freuen, wenn ich auch vom Erfolg (und nicht nur vom Mißerfolg) hören würde.

Hi Georg,

leider habe ich deinen Syntax noch nicht ganz durchdrungen.
Ich habe im Gegensatz zu meinem hier aufgeführtem Beispiel 8 Datumsfelder, die geprüft werden müssen.

Und es kann ja sein, dass das 6. Datumsfeld, das relevante Feld ist.
Ich hatte gehofft, daß es für Oracle einen Befehl wie in Excel =Min(a1;b1;c1;d1) gibt?

Gruß und DANKE

Ingo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Ingo,

Oracle kennt für sowas auch GREATEST() und LEAST(). Achtung evtl. bei NULL-Werten…

gruss
bernhard

DANKE - Lösung ist gefunden
Hallo Bernhard, vielen Dank für deinen Beitrag. Genau den Befehl habe ich gesucht.

Gruß Ingo

P.S. Allerdings muß man das Datum umwandeln, aber dann funzt es.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]