Я хочу сравнить текущую строку со значением в следующей строке. SQL имеет функции LEAD
и LAG
для получения следующих и предыдущих значений, но я не могу их использовать, потому что я использую SQL Server 2008.
Итак, как мне это получить?
У меня есть таблица с выходом
+----+-------+-----------+-------------------------+
| Id | ActId | StatusId | MinStartTime |
+----+-------+-----------+-------------------------+
| 1 | 42 | 1 | 2014-02-14 11:17:21.203 |
| 2 | 42 | 1 | 2014-02-14 11:50:19.367 |
| 3 | 42 | 1 | 2014-02-14 11:50:19.380 |
| 4 | 42 | 6 | 2014-02-17 05:25:57.280 |
| 5 | 42 | 6 | 2014-02-19 06:09:33.150 |
| 6 | 42 | 1 | 2014-02-19 06:11:24.393 |
| 7 | 42 | 6 | 2014-02-19 06:11:24.410 |
| 8 | 42 | 8 | 2014-02-19 06:44:47.070 |
+----+-------+-----------+-------------------------+
То, что я хочу сделать, - это состояние текущей строки 1, а состояние следующей строки равно 6, и оба раза одинаковы (до минут), тогда я хочу получить строку, в которой состояние равно 1.
Например: Id 6 row имеет статус 1, а строка Id 7 имеет статус 6, но оба раза совпадают, т.е. 2014-02-19 06:11
Итак, я хочу получить эту строку или идентификатор для статуса 1, т.е. id 6