title image


Smiley Re: Brauche Hilfe beim SELECT Statement
Hallo Saluk,



danke für deine Antwort. Allerdings entspricht dein Ergebniss noch nicht ganz dem was ich suche. Ich möchte eine Liste von allen Geräten mit ihrem Erstellungsdatum und dem Datum, wann es wieder gelöscht wurde. Ist es aktuell noch im System vorhanden steht ein NULL im end_timestamp. Bei deiner Liste würden die Geräte doch immer noch doppelt auftauchen, oder sehe ich das falsch? Im Prinzip müsste folgendes Statement reichen:



SELECT sn, MIN(begin_timestamp), MAX(end_timestamp)

FROM geraete

GROUP BY sn;



Das Problem ist nur, dass ja ein NULL im end_timestamp beim MAX als höher gewertet werden müsste, als jedes andere Datum. Über folgendem Umweg habe ich das erstmal gelöst:



SELECT sn, begin_timestamp, DECODE(to_Char(end_timestamp, 'DD.MM.YYYY'), null, end_timestamp) end_timestamp

FROM

(

SELECT sn, MIN(begin_timestamp) begin_timestamp, MAX(end_timestamp) end_timestamp

FROM

(

SELECT sn, begin_timestamp, DECODE(end_timestamp, null, to_Date('01.01.9999', 'DD.MM.YYYY'), a_end_timestamp) end_timestamp FROM geraete

) g

GROUP BY sn

)

;



Ich habe also jeden NULL Eintrag auf das end_timestamp '01.01.9999' gesetzt und darauf dann den MAX laufen lassen. Hinterher wurde dann wieder zurück konvertiert. Aber das muss doch irgendwie auch einfacher gehen, oder?

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: