Seite 1 von 1

Abfrageergebnis auf mehrere rows splitten

BeitragVerfasst: Fr 21. Sep 2018, 16:43
von Frankie
Hallo zusammen
Bin neu hier und stelle auch gleich meine erste Frage, da ich bisher nicht fündig wurde bzw. nicht mal so genau weiss, wonach ich suchen soll.

Ich habe eine Tabelle mit 3 Spalten:
ID (Unique) | logtime | timestamp

Das Resultat für SELECT * FROM TABELLE könnte also z.B. sein:
1 | 20.09.2018 14:00 | 21.09.2018 16:30

Was ich für mein Vorhaben aber jetzt benötigen würde, wäre folgendes.
Das Resultat der Abfrage soll gesplittet werden und je einen Eintrag pro Tag ausgeben. Von Beginn (logtime) bis zum Ende des Tages und dann ab diesem Zeitpunkt einen neuen Eintrag von Mitternacht bis zum Ende (timestamp).

Das Resultat sollte also so aussehen:

ID | logtime | timestamp
1 | 20.09.2018 14:00 | 21.09.2018 00:00
1 | 21.09.2018 00:00 | 21.09.2018 16:30

Für dieses simple Beispiel könnte ich das z.B. so lösen:
Code: Alles auswählen
SELECT id, logtime, trunc(timestamp) FROM tabelle
UNION
SELECT id, trunc(timestamp) AS logtime, timestamp FROM tabelle;


Das ganze sollte aber natürlich flexibel sein und auch über mehr als 1 Tag Unterschied zwischen logtime und timestamp funktionieren.

Gibt es hierfür eine "reine" SQL-Lösung?

Vielen Dank und liebe Grüsse
Frankie