Я пытаюсь найти максимальное количество дней для каждого Cust_Nbr
. Для каждого года у него может быть несколько с или без перерывов, в примере ниже Cust имеет 3 PolicNo
, и для этого случая мне нужно найти, что max дней = 5 (как для PolicNo = 1) и max = 2 для других. Я пытался работать с некоторыми числами, закончил с таблицей, как показано ниже, но не уверен, как я могу go через все это для каждого на Cust_Nbr
поймать любой перерыв. Цените ваши лиды. Я также вставил тестовые данные. Все еще есть ошибки в моем коде.
Drop table if exists #T;
CREATE TABLE #t (Cust_Nbr int, PolicNo int, ENR_START Date, ENR_END DATE, DD Date, DayNum int, DayNum_Prev Int)
insert #t values
(11111, 1, '11/27/2019', '12/1/2019', '11/27/2019', 331, 0),
(11111, 1, '11/27/2019', '12/1/2019', '11/28/2019', 332, 331),
(11111, 1, '11/27/2019', '12/1/2019', '11/29/2019', 333, 332),
(11111, 1, '11/27/2019', '12/1/2019', '11/30/2019', 334, 333),
(11111, 1, '11/27/2019', '12/1/2019', '12/1/2019', 335, 334),
(11111, 22,'12/8/2019', '12/10/2019', '12/8/2019', 342, 335),
(11111, 22, '12/8/2019', '12/10/2019', '12/9/2019', 343, 342),
(11111, 22, '12/8/2019', '12/10/2019', '12/10/2019', 344, 343),
(11111, 333, '12/26/2019', '12/29/2019', '12/26/2019', 360, 344),
(11111, 333, '12/26/2019', '12/29/2019', '12/27/2019', 361, 360),
(11111, 333, '12/26/2019', '12/29/2019', '12/28/2019', 362, 361),
(11111, 333, '12/26/2019', '12/29/2019', '12/29/2019', 363, 362),
(999999, 90, '12/8/2019', '12/9/2019', '12/8/2019', 342, 0),
(999999, 90, '12/8/2019', '12/9/2019', '12/9/2019', 343, 342)
Select t.* , Days_Max = ( SELECT TOP 1 Cust_Nbr, COUNT(*)
FROM #t t2
WHERE t2.Cust_Nbr = t.Cust_Nbr
)
FROM #t t