Oracle Sysdate como clausula Where

13/10/2021

0

Gostaria de usar a data do sysdate como clausula Where, pois tenho que fazer um relatorio que me traga os registros incluidos no anterior ao dia atual. Assim, posso considerar Sysdate-1?

SELECT

RHMEDI_ATESTADO.CODIGO_CONTRATO MATRIC,
RHPESS_CONTRATO.NOME NOME,
RHMEDI_ATESTADO.DATA_INICIO DT_INICIO,
RHMEDI_ATESTADO.DATA_FIM DT_FIM,
CASE
WHEN RHMEDI_ATESTADO.COD_TP_ATESTADO = '0005' THEN 'LIC MATERNIDADE'
WHEN RHMEDI_ATESTADO.COD_TP_ATESTADO = '0006' THEN 'DOACAO DE SANGUE'
WHEN RHMEDI_ATESTADO.COD_TP_ATESTADO = '0008' THEN 'ATESTADO ATE 15 DIAS'
WHEN RHMEDI_ATESTADO.COD_TP_ATESTADO = '0009' THEN 'AT ACID DO TRABALHO ATE 15 DIAS'
WHEN RHMEDI_ATESTADO.COD_TP_ATESTADO = '0011' THEN 'PRORR LIC MATERNIDADE'
WHEN RHMEDI_ATESTADO.COD_TP_ATESTADO = '0012' THEN 'PANDEMIA CORONAVIRUS'
WHEN RHMEDI_ATESTADO.COD_TP_ATESTADO = '0100' THEN 'LIC PATERNIDADE'
WHEN RHMEDI_ATESTADO.COD_TP_ATESTADO = '0108' THEN 'PRORR LIC PATERNIDADE'

END TIPO_ATESTADO,
RHMEDI_ATESTADO.DT_ULT_ALTER_USUA DT_REGISTRO

FROM
CRHH.RHMEDI_ATESTADO,
MGS.RHPESS_CONTRATO

WHERE
RHPESS_CONTRATO.CODIGO = RHMEDI_ATESTADO.CODIGO_CONTRATO
AND RHMEDI_ATESTADO.COD_TP_ATESTADO <> '0007'
AND RHMEDI_ATESTADO.DT_ULT_ALTER_USUA > TRUNC(SYSDATE)

ORDER BY RHMEDI_ATESTADO.DT_ULT_ALTER_USUA DESC


No caso, não estou conseguindo fazer funcionar com trunc(sysdate)-1.

Seria correto assim?
Marco Sousa

Marco Sousa

Responder

Post mais votado

14/10/2021

tente assim:
SELECT
	AT.CODIGO_CONTRATO MATRIC,
	CT.NOME NOME,
	AT.DATA_INICIO DT_INICIO,
	AT.DATA_FIM DT_FIM,
	CASE
		WHEN AT.COD_TP_ATESTADO = '0005' THEN 'LIC MATERNIDADE'
		WHEN AT.COD_TP_ATESTADO = '0006' THEN 'DOACAO DE SANGUE'
		WHEN AT.COD_TP_ATESTADO = '0008' THEN 'ATESTADO ATE 15 DIAS'
		WHEN AT.COD_TP_ATESTADO = '0009' THEN 'AT ACID DO TRABALHO ATE 15 DIAS'
		WHEN AT.COD_TP_ATESTADO = '0011' THEN 'PRORR LIC MATERNIDADE'
		WHEN AT.COD_TP_ATESTADO = '0012' THEN 'PANDEMIA CORONAVIRUS'
		WHEN AT.COD_TP_ATESTADO = '0100' THEN 'LIC PATERNIDADE'
		WHEN AT.COD_TP_ATESTADO = '0108' THEN 'PRORR LIC PATERNIDADE'
	END TIPO_ATESTADO,
	AT.DT_ULT_ALTER_USUA DT_REGISTRO
FROM
	CRHH.RHMEDI_ATESTADO AT
INNER JOIN
	MGS.RHPESS_CONTRATO CT ON CT.CODIGO = AT.CODIGO_CONTRATO
WHERE
	AT.COD_TP_ATESTADO <> '0007'
	AND AT.DT_ULT_ALTER_USUA > TRUNC(SYSDATE-1)
ORDER BY
	AT.DT_ULT_ALTER_USUA DESC

pense na possibilidade de criar um cadastro para o tipo de atestado.
geralmente se usa o case para coisas simples, como SIM/NÃO, CANCELADO/ATIVO, onde o campo é apenas uma flag (0/1, T/F, S/N).

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

14/10/2021

Marco Sousa

Boa noite Emerson, tudo bem?

Muito obrigado por responder
Acatei sua dica e alterei o CASE para Decode. Obrigado!

Infelizmente o
data_ult_alteracao > trunc(sysdate-1)
não funcionou adequadamente pois me retorna as informações de hoje
e usar o
data_ult_alteracao = trunc(sysdate-1)
o relatorio retorna vazio.





tente assim:
SELECT
	AT.CODIGO_CONTRATO MATRIC,
	CT.NOME NOME,
	AT.DATA_INICIO DT_INICIO,
	AT.DATA_FIM DT_FIM,
	CASE
		WHEN AT.COD_TP_ATESTADO = '0005' THEN 'LIC MATERNIDADE'
		WHEN AT.COD_TP_ATESTADO = '0006' THEN 'DOACAO DE SANGUE'
		WHEN AT.COD_TP_ATESTADO = '0008' THEN 'ATESTADO ATE 15 DIAS'
		WHEN AT.COD_TP_ATESTADO = '0009' THEN 'AT ACID DO TRABALHO ATE 15 DIAS'
		WHEN AT.COD_TP_ATESTADO = '0011' THEN 'PRORR LIC MATERNIDADE'
		WHEN AT.COD_TP_ATESTADO = '0012' THEN 'PANDEMIA CORONAVIRUS'
		WHEN AT.COD_TP_ATESTADO = '0100' THEN 'LIC PATERNIDADE'
		WHEN AT.COD_TP_ATESTADO = '0108' THEN 'PRORR LIC PATERNIDADE'
	END TIPO_ATESTADO,
	AT.DT_ULT_ALTER_USUA DT_REGISTRO
FROM
	CRHH.RHMEDI_ATESTADO AT
INNER JOIN
	MGS.RHPESS_CONTRATO CT ON CT.CODIGO = AT.CODIGO_CONTRATO
WHERE
	AT.COD_TP_ATESTADO <> '0007'
	AND AT.DT_ULT_ALTER_USUA > TRUNC(SYSDATE-1)
ORDER BY
	AT.DT_ULT_ALTER_USUA DESC

pense na possibilidade de criar um cadastro para o tipo de atestado.
geralmente se usa o case para coisas simples, como SIM/NÃO, CANCELADO/ATIVO, onde o campo é apenas uma flag (0/1, T/F, S/N).
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar