Eu tenho um problema clássico de lacunas e ilhas em que preciso somar o tempo dos registros mais recentes desde a primeira lacuna nas datas
Observando Find Consecutive Date in SQL using 2 date columns , isso fornece uma solução muito interessante para minha pergunta, exceto que não funciona para o SQL Server, há erros de sintaxe.
Alguém tem uma solução equivalente que funcione para o SQL Server?
Os dados são algo assim
REFERÊNCIA | TNCY-INICIAR | TNCY-END |
---|---|---|
1 | 2022-08-22 | 2024-04-22 |
1 | 29/04/2019 | 2022-08-21 |
1 | 26/06/2017 | 28/04/2019 |
1 | 29/06/2009 | 31/01/2010 |
2 | 13/07/2020 | NULO |
2 | 18/05/2020 | 12/07/2020 |
2 | 13/01/2020 | 17/05/2020 |
2 | 06-12-2010 | 28/08/2016 |
2 | 29/09/2003 | 01/06/2009 |
3 | 25/03/2019 | NULO |
4 | 2022-08-22 | NULO |
4 | 29/04/2019 | 2022-08-21 |
4 | 26/06/2017 | 28/04/2019 |
4 | 29/06/2009 | 31/01/2010 |
create table #test ([PERSON-REF] INT,
[TNCY-START] DATE,
[TNCY-END] DATE);
INSERT INTO #test VALUES
('1', '2022-08-22 00:00:00.000', '2024-04-22 00:00:00.000'),
('1', '2019-04-29 00:00:00.000', '2022-08-21 00:00:00.000'),
('1', '2017-06-26 00:00:00.000', '2019-04-28 00:00:00.000'),
('1', '2009-06-29 00:00:00.000', '2010-01-31 00:00:00.000'),
('2', '2020-07-13 00:00:00.000', null),
('2', '2020-05-18 00:00:00.000', '2020-07-12 00:00:00.000'),
('2', '2020-01-13 00:00:00.000', '2020-05-17 00:00:00.000'),
('2', '2010-12-06 00:00:00.000', '2016-08-28 00:00:00.000'),
('2', '2003-09-29 00:00:00.000', '2009-06-01 00:00:00.000'),
('3', '2019-03-25 00:00:00.000', NULL),
('4', '2022-08-22 00:00:00.000', NULL),
('4', '2019-04-29 00:00:00.000', '2022-08-21 00:00:00.000'),
('4', '2017-06-26 00:00:00.000', '2019-04-28 00:00:00.000'),
('4', '2009-06-29 00:00:00.000', '2010-01-31 00:00:00.000')
SELECT * FROM #test;
e quero terminar com uma única linha por pessoa ref contendo person-ref, contagem de registros após intervalo, data de início após intervalo, última data de término (ou nula), dias entre eles.
por exemplo, assumindo o formato de data do Reino Unido e considerando nulo como hoje
REFERÊNCIA | CONTAGEM DE LOCAÇÕES | PRIMEIRO INÍCIO DO TNCY | ÚLTIMO FIM DO TNCY | TOTAL DE DIAS DE LOCAÇÃO |
---|---|---|---|---|
1 | 3 | 26/06/2017 | 2024-04-22 | 2492 |
2 | 3 | 13/01/2020 | NULO | 1562 |
3 | 1 | 25/03/2019 | NULO | 1866 |
4 | 3 | 26/06/2017 | NULO | 2493 |
Obrigado por qualquer ajuda que alguém possa oferecer