Я создаю отчет об отсутствии персонала. Данные об отсутствии хранятся в базе данных как одна строка в день (столбцы: EmployeeId, Дата отсутствия, Длительность). Поэтому, если я не работаю со вторника 11 февраля 2020 года по пятницу 21 февраля 2020 года включительно, в таблице будет 9 строк:
11 февраля 2020 года - 1 день
12 февраля 2020 года - 1 день
13 февраля 2020 года - 1 день
14 февраля 2020 года - 1 день
17 февраля 2020 года - 1 день
18 февраля 2020 года - 1 день
19 февраля 2020 г. - 1 день
20 февраля 2020 г. - 1 день
21 февраля 2020 г. - 1 день
(см. Скриншот ниже)
HR хотел бы видеть одну запись в отчете за непрерывный период отсутствия:
Мой вопрос - без использования курсора, как я могу вычислить значение в SQL (еще сложнее, потому что я должен сделать это с помощью Linq до SQL, но я мог бы поменяться местами это для хранимой процедуры. Обратите внимание, что критерий для смежных данных - смежные рабочие дни, исключая выходные и праздничные дни. Я надеюсь, что Я ясно ... извинения, если нет.