Ir para conteúdo

POWERED BY:

Arquivado

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

Odair Santos

[Resolvido] Query resultados mes passado

Recommended Posts

Boa Tarde,

 

Tenho a seguinte query onde tenho que rodar todo mes, e alterar manualmente as datas de inicio e fim,

quero deixar essa query pegando o mes anterior automatico, alguem consegue me ajudar?

 

DECLARE

UF VARCHAR(2) := UPPER('AC');
EMPRESA VARCHAR(4) := UPPER('TEST');
DATA_INICIAL DATE := '01/07/2011';
DATA_FINAL DATE := '31/07/2011';

BEGIN

FOR AUX IN (SELECT EMPS_COD, FILI_COD FROM OPENRISOW.FILIAL WHERE UNFE_SIG = UF AND EMPS_COD = EMPRESA) LOOP

	DBMS_OUTPUT.PUT_LINE('ATUALIZANDO FILIAL '||AUX.FILI_COD);

	UPDATE
		OPENRISOW.LCMS
	SET
		LCMS_IE_ENT =REPLACE(REPLACE(REPLACE(LCMS_IE_ENT,'.',''),'-',''),'/','')
	WHERE
		EMPS_COD		=		AUX.EMPS_COD	AND
		FILI_COD		=		AUX.FILI_COD	AND
		MNFSM_DTEMISS	BETWEEN	DATA_INICIAL	AND
								DATA_FINAL
	;

	COMMIT;

END LOOP;

DBMS_OUTPUT.PUT_LINE('PROCESSO FINALIZADO');

END;
/
EXIT;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm Entendi...

 

voce nao teria um exemplo pratico de como posso montar, preciso que sempre pegue o mes anterior, se conseguir vai me adiantar muito...

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use as funções Add_months com Trunc e last_day

 

DECLARE

UF VARCHAR(2) := UPPER('AC');
EMPRESA VARCHAR(4) := UPPER('TEST');
DATA_INICIAL DATE ;
DATA_FINAL DATE ;

BEGIN

DATA_INICIAL := TRUNC(ADD_MONTHS(SYSDATE,-1),'MM');--SUBTRAI UM MES E ACHA O PRIMEIRO DIA
DATA_FINAL   := LAST_DAY(ADD_MONTHS(SYSDATE,-1));--SUBTRAI UM MES E ACHA O ULTIMO DIA
...
END;

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.