SQL Server: Vergleiche Datumsangaben zwischen Zeilen

8

Ich arbeite mit SQL Server 2016 und ich kann nicht herausfinden, wie diese Abfrage erstellt wird.

Sagen wir, ich habe einen Tisch wie diesen:

%Vor%

Ich möchte nur die Zeilen auswählen, bei denen die Eingabe datetime nach der letzten ausgewählten result datetime liegt.

Beispiel: Die Ergebniszeit für Zeile 1 lautet "2016-05-02 21:50:00". Die nächste Zeile wird also Zeile 4 sein, da dies die erste Zeile ist, in der sich die Eingabezeit nach der Ergebniszeit befindet zuletzt ausgewählt, die nächste Zeile soll nach der Ergebniszeit von Zeile 4 liegen (nach "2016-05-03 03:33:00"), so dass die nächste Zeile Zeile 5 ist.

Das angeforderte Ergebnis lautet:

%Vor%     
TVC 11.10.2016, 00:06
quelle

3 Antworten

2

Sie können dies beispielsweise mithilfe eines rekursiven CTE tun, um die nächste Zeile zu erhalten. Zum Beispiel

%Vor%

EDIT: Für mehrere "Symbole", hier ist eine Methode, die funktionieren würde (mit Beispieldaten).

%Vor%     
ZLK 11.10.2016, 00:46
quelle
1

Sie können diese Abfrage verwenden:

%Vor%     
Kirill Polishchuk 11.10.2016 02:25
quelle
1

Ich denke mal Cursor ist die Antwort

%Vor%

BEARBEITEN

Und die Mehrfachsymbolversion

%Vor%     
Antonín Lejsek 14.10.2016 02:23
quelle

Tags und Links