Pracuję z serwerem SQL 2016 i nie mogę wymyślić, jak zbudować to zapytanie.Serwer SQL: porównaj daty między wierszami
Powiedzmy Mam tabeli tak:
ID EntryTime ResultTime
1 2016-05-02 13:30:00 2016-05-02 21:50:00
2 2016-05-02 14:45:00 2016-05-02 22:00:00
3 2016-05-02 16:30:00 2016-05-02 22:21:00
4 2016-05-03 01:00:00 2016-05-03 03:33:00
5 2016-05-03 10:30:00 2016-05-04 07:47:00
6 2016-05-03 12:30:00 2016-05-03 22:45:00
7 2016-05-04 11:30:00 2016-05-05 21:30:00
8 2016-05-04 12:30:00 2016-05-04 22:58:00
9 2016-05-04 13:30:00 2016-05-04 23:04:00
10 2016-05-04 13:45:00 2016-05-04 22:59:00
11 2016-05-04 14:00:00 2016-05-04 22:59:00
12 2016-05-04 14:15:00 2016-05-04 23:04:00
13 2016-05-04 17:45:00 2016-05-04 21:47:00
14 2016-05-05 23:30:00 2016-05-06 03:25:00
15 2016-05-05 23:45:00 2016-05-06 03:30:00
16 2016-05-06 00:00:00 2016-05-06 03:32:00
17 2016-05-06 00:15:00 2016-05-06 03:31:00
18 2016-05-06 00:30:00 2016-05-06 03:25:00
19 2016-05-06 00:45:00 2016-05-06 02:50:00
20 2016-05-06 01:00:00 2016-05-06 03:25:00
Chcę wybrać tylko te wiersze, że datetime wpis zostanie po ostatniej wybranej wynik datetime.
Na przykład: czas zakończenia dla wiersza 1 to "2016-05-02 21:50:00", więc następny wiersz będzie wiersz 4, ponieważ jest to pierwszy wiersz, w którym czas wejścia jest po czasie wyniku, został ostatnio wybrany, następna linia przypuszczalnie ma być po czasie wyniku linii 4 (Po "2016-05-03 03:33:00"), więc następną linią będzie linia 5.
Żądany wynik to:
ID EntryTime ResultTime
1 2016-05-02 13:30:00 2016-05-02 21:50:00
4 2016-05-03 01:00:00 2016-05-03 03:33:00
5 2016-05-03 10:30:00 2016-05-04 07:47:00
7 2016-05-04 11:30:00 2016-05-05 21:30:00
14 2016-05-05 23:30:00 2016-05-06 03:25:00
twoje pożądane wyjście jest niejasne ... możesz być bardziej rozbudowany ... – Teja
Myślę, że jesteś jedyną osobą, która zna wynik –
Ciekawe ... Zdecydowanie można to zrobić w pętli WHILE, ale jako pojedyncze WYBIERZ, nie na pewno ... – Anton