У нас есть таблица в Microsoft SQL Server 2014, как показано ниже, в которой есть столбцы Id, LogId, AccountId, StateCode, Number и LastSentDate.

Нашей целью было перенести данные в новую таблицу.Когда мы его перемещаем, нам нужно поддерживать первую и последнюю запись для этой серии.На основании наших данных lastsentdate начинается с 5/1 и продолжается до 5/5, затем мы должны создать новую строку, как показано ниже (мы устанавливаем FirstSentDate как 5/1, Log Id в качестве первого идентификатора журнала, который появился - 28369 и с тех порсерия закончилась 5/5, мы обновляем LastsentDate как 5/5 и LastSentLog Id как 28752)

, если есть некоторые даты с разницей ввремя, желаемый результат будет

Поскольку наш ряд дат продолжается, последняя строка в новой таблице будет

Мы пытались сгруппировать по дате и добиться этого
WITH t
AS (SELECT LastSentDate d,
ROW_NUMBER() OVER(
ORDER BY LastSentDate) i
FROM [dbo].[RegistrationActivity]
GROUP BY LastSentDate)
SELECT MIN(d),
MAX(d)
FROM t
GROUP BY DATEDIFF(day, i, d);