Ir para conteúdo

Arquivado

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

diegohamaz1

procedure

Recommended Posts

Galera , Não mexo muito com oracle e agora estou precisando fazer uma JOB contendo uma procedure que faça o seguinte, leia na tabela usuarios que não tenham registros até o dia primeiro de cada mês(virar o mês) , se caso o usuário nao tiver registro, pegar os dados desses usuario e inserir no mes seguinte, por exemplo:

 

USUARIO DATA INFORM

JOSE 05/09/2015 S

JOSE 07/09/2015 N

 

QUANDO VIRAR O MES 11 E NAO TER REGISTRO NO MES 10 PEGAR ESSES REGISTRO E INSERIR NO MES 10 ENTAO FICARIA

 

USUARIO DATA INFORM

JOSE 05/09/2015 S

JOSE 07/09/2015 N

JOSE 05/10/2015 S

JOSE 07/10/2015 N

 

Alguem pode me ajudar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

 

 

Estou com dificuldade de selecionar registro que tem no mês anterior e não tem no atual estou fazendo o seguinte.

 

 

SELECT * FROM tabela
WHERE TO_CHAR(DATA_ENTRADA,'MM') = TO_CHAR(SYSDATE,'MM')
SELECT * FROM tabela
WHERE TO_CHAR(ADD_MONTHS(DATA_ENTRADA,-2),'MM') = TO_CHAR(ADD_MONTHS(SYSDATE,-2),'MM')

A primeira query funcionou pegou os registro do mes agora quando pego do mes passado nao vem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

dica :

 

mês atual

 

TRUNC(SYSDATE,'MM')

 

mês posterior

 

TRUNC(ADD_MONTHS(SYSDATE,1),'MM')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta quase rs

 

Para eu selecionar os CNPJ que estejam no mes corrente mas nao estão no mes anterior é mais ou menos isso?

SELECT  * FROM tabela 
  WHERE  TRUNC(DATA_ENTRADA,'MM')  = TRUNC(SYSDATE,'MM')
AND NOT EXISTS ( 
  SELECT  * FROM tabela
  WHERE DATA_ENTRADA between TRUNC(ADD_MONTHS(SYSDATE,-1),'MM') AND  TRUNC(SYSDATE,'MM')
)

No caso essa sub query quando deixo "=" ele me retorna só do mes e quando coloco "<" ele me retorna só do penultimo mes

Compartilhar este post


Link para o post
Compartilhar em outros sites

ALGO ASSIM

SELECT  * FROM tabela T1
  WHERE CNPJ = '1234567890'
  AND   TRUNC(DATA_ENTRADA,'MM')  = TRUNC(SYSDATE,'MM')
AND NOT EXISTS (
  SELECT  * FROM tabela T2
  WHERE T2.CNPJ = T1.CNPJ
  AND   T2.DATA_ENTRADA between TRUNC(ADD_MONTHS(SYSDATE,-1),'MM') AND  TRUNC(SYSDATE,'MM')
)

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.