Jay Malik Ответов: 2

Выберите сотрудника, который отсутствовал в течение 3 дней подряд


идентификатор emp_id leave_date
1 3-авг-13
1 4-авг-13
1 10-авг-13
1 13-авг-13
2 10-авг-13
2 13-авг-13
3 3-авг-13
3 4-авг-13
3 5-авг-13
3 10-авг-13

Что я уже пробовал:

нужен идентификатор сотрудника, который отсутствовал в течение 3 дней подряд

2 Ответов

Рейтинг:
4

Jay Malik

выберите id, rw из

(
выберите ID,ДД,функция dateadd(ДД,функции row_number()над(раздел по ID приказом от ДД убыв),ДД) как RW от Эми
)в качестве

группы.идентификатор,.РАО
имея count(*)=3


Рейтинг:
12

OriginalGriff

Во-первых, проверьте свои типы данных.
Если Leave_date хранится в поле DATETIME, DATETIME2. или DATE, то это возможно, но не просто. Если он хранится в VARCHAR или NVARCHAR (как это может показаться из ваших выборочных данных), то это не так.

Но даже тогда это сложно: sql server - SQL: группировка по последовательным записям - переполнение стека[^]


Jay Malik

leave_date хранится в типе данных date

OriginalGriff

Так что теперь Переходите по ссылке и начинайте читать!