DateTime Liste verschränken

sachti

Neuer Benutzer
Beiträge
2
Hallo zusammen,

Ich habe eine Liste an Zeitpunkten und möchte daraus eine Liste erstellen in der jeweils ein Element mit seinem Nachfolger zusammen aufgeführt ist:

Die Datenbank heißt [result], das Feld heißt "Created" von Typ column(PK, datetime, not null)
Die Liste ist DESC sortiert.

Ausgangspunkt
2017-02-17 10:04:56.160
2017-02-16 18:56:29.647
2017-02-15 21:06:10.640
2017-02-15 16:19:27.190
2017-02-15 14:50:37.353
...

Ziel
2017-02-17 10:04:56.160 2017-02-16 18:56:29.647
2017-02-16 18:56:29.647 2017-02-15 21:06:10.640
2017-02-15 21:06:10.640 2017-02-15 16:19:27.190
2017-02-15 16:19:27.190 2017-02-15 14:50:37.353
...

Kann mir dabei jnd. helfen?
 
Zuletzt bearbeitet:
Werbung:
Hab es selbst gelöst

Code:
SELECT c.FromDate, MIN(c.ToDate) as ToDate
FROM
(
    SELECT DISTINCT a.Created as FromDate, b.Created as ToDate
    FROM
    (
        SELECT Created
        FROM [Results]
    ) as a
    INNER Join
    (
        SELECT Created
        FROM [Results]
    ) as b
    on a.Created < b.Created
) as c
Group by c.FromDate
Order by c.FromDate ASC

Fragt nicht wie aber so klappt es!
 
Werbung:
Ist aber irgendwie Suboptimal, warum gibt es denn ein DISTINCT, gibt es auch mehrere Datensätze mit gleicher Zeit?

Besser fände ich ja:
Code:
WITH t AS (
SELECT   ROW_NUMBER() OVER (ORDER BY Created) AS zeile,
     Created
FROM   [Results]
     )
SELECT   a.Created AS FromDate,
     b.Created AS ToDate
FROM   t a
LEFT JOIN t b
ON     a.zeile + 1 = b.zeile
ORDER BY a.zeile ASC
 
Zurück
Oben