Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde
estou tentando fazer uma tabela por datas do ano por semana, como na imagem, trazendo a primeira data (segunda feira) em uma coluna e a data final (domingo) na outra, e o numero da semana do ano na terceira coluna..
alguém me ajuda?

Bom dia, obrigado pela ajuda, mas como estou começando a programar, não entendi como faz para aparecer todas as semanas do ano..
nesse exemplo abaixo ele só gera 10 linhas..
SELECT TO_CHAR(CREATED,'WW') "NUMERO DA SEMANA",
TO_CHAR(TRUNC(CREATED, 'IW')-1,'DD-MON-YYYY') "DIA INICIAL SEMANA", TO_CHAR(NEXT_DAY(TRUNC(CREATED,'IW'),'SATURDAY'),'DD-MON-YYYY') "DIA FINAL DA SEMANA" ,
COUNT(*) QTD
FROM USER_OBJECTS
WHERE
CREATED >= TO_DATE('01/01/2018','DD/MM/YYYY')
GROUP BY
TO_CHAR(CREATED,'WW') ,
TO_CHAR(TRUNC(CREATED, 'IW')-1,'DD-MON-YYYY') ,
TO_CHAR(NEXT_DAY(TRUNC(CREATED,'IW'),'SATURDAY'),'DD-MON-YYYY')
ORDER BY 1>
Citar
mas como estou começando a programar,
a tabela USER_OBJECTS tem os objetos (tabelas views etc) do usuário , você ter poucas , tente com DBA_OBJECTS (para o exemplo)
Publique a estrutura de sua tabela por favor.
boa tarde!!
consegui fazer!
Valeu pela força!!
Publica a solução se possível, pode ajudar a alguém.
OPA.. fiz uma tabela apenas com as datas de intervalo da semana
e um join com as outras tabelas que eu precisava.. então quando a data de chegada do pedido entra no intervalo lista na semana e faz os calculos.. retirei varias colunas da consulta, na imagem listei só os campos para dar ideia da resultado.. a tabela completa vem com informações de 2014 até dia -1.. as colunas que aparecem são INICIO_SEMANA/FIM_SEMANA/ANO_SEMANA/COD_REPRESENTANTE/QUANTIDADE_VENDIDA/VALOR_VENDIDO
FROM IM_DEMANDA B
LEFT JOIN TESTE_SEMANA C ON (C.CD_MARCA_DC = B.CD_MARCA)
WHERE
B.CD_PERIODO = C.CD_PERIODO_DC
AND TO_DATE(B.DT_CHEGADA, 'DD/MM,YYYY') >= TO_DATE (C.INICIO_SEMANA, 'DD/MM/YYYY')
AND TO_DATE(B.DT_CHEGADA, 'DD/MM/YYYY') <= TO_DATE(C.FIM_SEMANA, 'DD/MM/YYYY')
AND B.CD_REPRESENTANTE NOT IN 90020
AND B.CD_PERIODO = (SELECT MAX(C.CD_PERIODO)
FROM IM_PERIODO_COLECOES C
WHERE ROWNUM = 1 AND B.CD_MARCA = C.CD_MARCA)
AND B.TP_SITUACAO NOT IN (6,7)
\
Você tem usando a TO_CHAR formas de trazer a semana
WW
Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.
W
Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh.
IW
Week of year (1-52 or 1-53) based on the ISO standard.
Fonte
A semana começa no domingo , já vi artifícios como somar um ao dia para buscar a semana começando na segunda.
Veja também isto