У меня есть следующая таблица:
CREATE table DataDiff (CLI tinyint, id tinyint, date datetime, countable bit)
insert into DataDiff values (234,1,convert(datetime,'17/12/1997',103),1)
insert into DataDiff values (234,2,convert(datetime,'09/07/1998',103),0)
insert into DataDiff values (234,3,convert(datetime,'11/08/1998',103),1)
insert into DataDiff values (234,4,convert(datetime,'29/12/1998',103),0)
insert into DataDiff values (234,5,convert(datetime,'01/02/1999',103),1)
insert into DataDiff values (234,6,convert(datetime,'03/02/1999',103),0)
insert into DataDiff values (234,7,convert(datetime,'03/02/1999',103),1)
insert into DataDiff values (234,8,convert(datetime,'29/03/1999',103),0)
insert into DataDiff values (234,9,convert(datetime,'29/03/1999',103),1)
insert into DataDiff values (234,10,convert(datetime,'31/03/1999',103),0)
Мне трудно переписать, без RBAR, UDF для подсчета дней с ID = 1 до ID = 2, затем с ID = 3 до ID = 4 и т. Д., Всегда начинаю подсчет, когда COUNTABLE = 1 и останавливается, когда COUNTABLE = 0, а затем возвращает сумму для данного CLI.
Длина в днях пяти изображенных интервалов:
ID=2 - ID=1 = 204
ID=4 - ID=3 = 140
ID=6 - ID=5 = 2
ID=8 - ID=7 = 54
ID=10 -ID=9 = 2
в общей сложности 402 "исчисляемых" дня из общего количества 469 дней между ID = 1 и ID = 10