trunc((data_maior - data_menor)/7), despreza decimais ou
ceil((data_maior - data_menor)/7) arredonda pra cima
Problema: o sistema calcula uma quantidade de dias divido por 7
e não quantidade de semanas reais atingidas pelo periodo;
Criei uma rotina para encontrar a quantidade semanas reais no
periodo compreendido entre duas datas, utilizado puro SQL.
Detalhe: com essa rotina, se o periodo começar numa semana e terminar
na semana seguinte, o sistema contará 2 semanas, independentemente
se o periodo for menor que 7 dias. Ou seja, não há coisas do tipo
duas semanas e meia;
Façam sua avaliação.
Gerado no Oracle 10:
SELECT Count(Count(LEVEL - (To_Number(To_Char(data_menor + LEVEL,'d'))-1)))
FROM dual
WHERE data_maior >= data_menor
CONNECT BY LEVEL <= data_maior - data_menor
GROUP BY LEVEL - (To_Number(To_Char(data_menor + LEVEL,'d'))-1);