Я пытаюсь объединить несколько смежных дат, чтобы получить одну запись.
Например, у меня есть следующие пропуски для одного сотрудника:
02-Mai-17 01-Apr-18
02-Apr-18 01-Apr-19
02-Apr-19 01-Apr-20
02-Apr-20 30-Aug-20
Результат должен быть: 02-Май-17 30 августа-20
Я пробовал с Объединить последовательные диапазоны дат , чтобы объединить соседние даты, но, насколько я понимаю, это работает только для одной дополнительной соседней даты.
Я загрузил пример базы данных в https://www.file -upload.net / download-13581528 / Database1.accdb.html
SELECT IT2001.Id, IT2001.Kind, IT2001.Start, IT2001.End, 'Typ1'
FROM IT2001 LEFT JOIN IT2001 AS IT2001_1 ON (IT2001.Id = IT2001_1.Id) AND (IT2001.Kind = IT2001_1.Kind) AND (IT2001.Start-1=IT2001_1.End)
WHERE IT2001_1.Id IS NULL
UNION ALL
SELECT IT2001.Id, IT2001.Kind, IT2001.Start, IT2001_1.End, 'Typ2'
FROM IT2001 INNER JOIN IT2001 AS IT2001_1 ON (IT2001.Id = IT2001_1.Id) AND (IT2001.Kind = IT2001_1.Kind) AND (IT2001_1.Start-1=IT2001.End)
, а затем:
SELECT Query1.Id, Query1.Kind, MIN(Query1.Start), Max(Query1.End)
FROM Query1
GROUP BY Query1.Id, Query1.Kind, Query1.Start
Я получаю 3 строки вместо одной:
02-Mai-17 01-Apr-19
02-Apr-18 01-Apr-20
02-Apr-19 30-Aug-20
Как получить одну строку или как удалить ненужные записи?