Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

luizfabianochaves

DATAS POR SEMANA NO ORACLE

Recommended Posts

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?

datas.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publica a solução se possível, pode ajudar a alguém.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OPA.. fiz uma tabela apenas com as datas de intervalo da semana1951484130_Semttulo.png.988631016823793778f9faef26d803f6.png 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)

 

\

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.