Hallo,
ich habe eine Tabelle mit vielen Logeinträgen und bräuchte zu jedem Logeintrag zusätzlich die Info zum Eintrag davor (um zu ermitteln, wie viele Datensätze in dem Zeitraum entstanden sind).
Meine Tabelle sieht vereinfacht so aus:
Und als Ergebnis hätte ich gerne:
Jetzt bekomme ich das zwar mit Unterabfragen gelöst, es sieht aber irgendwie nach keiner sehr "schönen" Lösung aus und ich frage mich, ob es dazu auch noch einen anderen Ansatz gibt.
Vielen Dank schon mal.
ich habe eine Tabelle mit vielen Logeinträgen und bräuchte zu jedem Logeintrag zusätzlich die Info zum Eintrag davor (um zu ermitteln, wie viele Datensätze in dem Zeitraum entstanden sind).
Meine Tabelle sieht vereinfacht so aus:
Code:
LfdNr Beschreibung Startzeit Endzeit
1 Job1 02.05.2023 06:00 02.05.2023 06:02
2 Job2 02.05.2023 10:00 02.05.2023 10:05
7 Job4 02.05.2023 14:00 02.05.2023 14:03
8 Job7 02.05.2023 18:00 02.05.2023 18:07
9 Job1 03.05.2023 08:00 03.05.2023 08:05
11 Job2 03.05.2023 11:00 03.05.2023 11:05
14 Job4 03.05.2023 15:00 03.05.2023 15:07
21 Job7 03.05.2023 19:00 03.05.2023 19:02
28 Job1 04.05.2023 06:00 04.05.2023 06:05
36 Job2 04.05.2023 09:00 04.05.2023 09:07
Und als Ergebnis hätte ich gerne:
Code:
LfdNr Beschreibung Startzeit Endzeit LetzteStartzeit LetzteEndzeit
1 Job1 02.05.2023 06:00 02.05.2023 06:02 NULL NULL
2 Job2 02.05.2023 10:00 02.05.2023 10:05 02.05.2023 06:00 02.05.2023 06:02
7 Job4 02.05.2023 14:00 02.05.2023 14:03 02.05.2023 10:00 02.05.2023 10:05
8 Job7 02.05.2023 18:00 02.05.2023 18:07 02.05.2023 14:00 02.05.2023 14:03
9 Job1 03.05.2023 08:00 03.05.2023 08:05 02.05.2023 18:00 02.05.2023 18:07
11 Job2 03.05.2023 11:00 03.05.2023 11:05 03.05.2023 08:00 03.05.2023 08:05
14 Job4 03.05.2023 15:00 03.05.2023 15:07 03.05.2023 11:00 03.05.2023 11:05
21 Job7 03.05.2023 19:00 03.05.2023 19:02 03.05.2023 15:00 03.05.2023 15:07
28 Job1 04.05.2023 06:00 04.05.2023 06:05 03.05.2023 19:00 03.05.2023 19:02
36 Job2 04.05.2023 09:00 04.05.2023 09:07 04.05.2023 06:00 04.05.2023 06:05
Jetzt bekomme ich das zwar mit Unterabfragen gelöst, es sieht aber irgendwie nach keiner sehr "schönen" Lösung aus und ich frage mich, ob es dazu auch noch einen anderen Ansatz gibt.
SQL:
SELECT LfdNr, Beschreibung, Startzeit, Endzeit
, (SELECT TOP 1 Startzeit
FROM Protokoll p1
WHERE p1.Beschreibung IN ('Job1', 'Job2', 'Job4', 'Job7')
AND p1.Startzeit < p.Startzeit
ORDER BY p1.Startzeit DESC)
, (SELECT TOP 1 Endzeit
FROM Protokoll p1
WHERE p1.Beschreibung IN ('Job1', 'Job2', 'Job4', 'Job7')
AND p1.Endzeit < p.Endzeit
ORDER BY p1.Endzeit DESC)
FROM Protokoll p
WHERE Beschreibung IN ('Job1', 'Job2', 'Job4', 'Job7')
Vielen Dank schon mal.