Usando o SQL Server 2008 e uma solução baseada em conjuntos, como eu poderia manipular os seguintes dados:
GroupID Code StartSeq EndSeq StartDayNo EndDayNo
1755549 3506 0 0 59442 59444
1755549 2928 1 3 59444 59465
1755549 2928 4 5 59465 59467
1755549 2928 6 6 59467 59481
1755549 2928 7 8 59481 59482
1755549 2928 9 9 59482 59494
1755549 3429 10 10 59494 59494
1755549 2928 11 11 59494 59496
1755549 3429 12 12 59496 59496
1755549 2928 13 13 59496 59501
Para obter este resultado:
GroupID Code StartSeq EndSeq StartDayNo EndDayNo
1755549 3506 0 0 59442 59444
1755549 2928 1 9 59444 59494
1755549 3429 10 10 59494 59494
1755549 2928 11 11 59494 59496
1755549 3429 12 12 59496 59496
1755549 2928 13 13 59496 59501
A consulta que criei originalmente agruparia apenas 2 linhas usando uma junção; no exemplo, existem 5 linhas que precisam ser agrupadas em apenas uma.
Script abaixo com alguns dados de amostra. Observe que há dados adicionais do que o exemplo original.
DECLARE @SampleData TABLE (
[GroupID] [int] NOT NULL,
[Code] [varchar](4) NOT NULL,
[StartSeq] [int] NOT NULL,
[EndSeq] [int] NOT NULL,
[StartDayNo] [int] NOT NULL,
[EndDayNo] [int] NOT NULL
)
INSERT INTO @SampleData
VALUES
(1622494, N'2082', 0, 0, 59136, 59137)
, (1622494, N'2082', 1, 1, 59137, 59167)
, (1622494, N'2934', 2, 2, 59167, 59335)
, (1622494, N'3613', 3, 3, 59335, 59350)
, (1755549, N'3506', 0, 0, 59442, 59444)
, (1755549, N'2928', 1, 3, 59444, 59465)
, (1755549, N'2928', 4, 5, 59465, 59467)
, (1755549, N'2928', 6, 6, 59467, 59481)
, (1755549, N'2928', 7, 8, 59481, 59482)
, (1755549, N'2928', 9, 9, 59482, 59494)
, (1755549, N'3429', 10, 10, 59494, 59494)
, (1755549, N'2928', 11, 11, 59494, 59496)
, (1755549, N'3429', 12, 12, 59496, 59496)
, (1755549, N'2928', 13, 13, 59496, 59501)
Não é a consulta mais bonita que já escrevi, mas parece fazer o trabalho sem nenhuma recursão. (Eu presumi que a saída precisa ser agrupada por GroupID e Code.)