Blz ? Parece ser meio enrolada atua regra, demandaria mais do que os 2 minutos (máximo) que deixo pra responder, mas numa olhada rápida acho que vc está muito muito perto : minha única Ressalva é que vc Absolutamente Não Precisa abrir um cursor e ficar fazendo IFs, acredito que vc possa fazer algo tipo :
SELECT inicio, fim, prazo, sum(CASE when prazo+1 = prx_inicio then prazo else 0) , ...colunas... FROM ( select t.inicio, t.fim, t.prazo, lead(t.inicio - 1) over (order by t.inicio) prx_inicio, lead(t.fim) over (order by t.fim) prx_fim, lead(t.prazo) over (order by t.prazo) prx_prazo from tabela t order by t.inicio, t.fim, t.prazo; ) ==> OU SEJA , vc só soma a coluna SE o valor obedece ás tuas regras.... É essa a técnica principal, okdoc ?? Como eu disse, não tive o tempo de mastigar algo mais preciso, mas ACREDITO que é por aí.... []s Chiappa