Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia! Estou a muito tempo tentando realizar uma consulta que incremente os anos/semanas('YYIW'), entre uma data inicio e uma data fim.
Realizei a seguinte consulta pra trazer todos os anos/semanas da minha tabela:
SELECT DISTINCT TO_CHAR(TO_DATE(DATA_INICIO,'YYYYMMDD'),'YYIW') DATA
FROM TABELA
UNION ALL
SELECT DISTINCT TO_CHAR(TO_DATE(DATA_FIM,'YYYYMMDD'),'YYIW') DATA
FROM TABELA
ORDER BY DATA;
Que no caso me retornou os seguintes dados:
DATA
1448
1503
1506
1507
O que preciso agora é que sejam incrementados os anos/semanas entre 1448 e 1507. Qualquer duvida estou a disposição.
Sim, seria adicionar os anos/semanas entre o inicio e o fim.
Pro exemplo:
Dados retornados da consulta:
DATA
1448
1503
1506
1507
Menor ano/semana = 1448
Maior ano/semana = 1507
Retornar os anos/semanas entre: 1448 e 1507
Exemplo:
DATA
1448
1449
1450
1451... Até chegar em 1507.
Gerando vazio , tipo uma simulação ?
veja se ajuda
select to_date('01102015','ddmmyyyy') + rownum - 1 dia
from user_tab_columns--fajuta só para gera sequencia
where rownum < 93
select to_char((to_date('01102015','ddmmyyyy') + rownum - 1),'yyyyww') --semanaswhere rownum < 93
select distinct to_char((to_date('01102015','ddmmyyyy') + rownum - 1),'yyyyww') --semanas distintas
Não entendi o problema , o que você quer dizer com "incrementar" ?
Algo como um "add_months" ou son=mar dias à uma data ?