Nomear campo NULL - Firebird

24/02/2022

0

Preciso colocar que quando o campo TBFLUXOATEND for NULL me traga como 'AGUARDANDO'


SELECT
RECADATE.DT_ATE,
RECADATE.REG,
RECADATE.PRONT,
RICADPAC.nome,
RICADPAC.nasc,
--PACIENTE AGUARDANDO
(SELECT FIRST 1 (TBFLUXOATEND.DATA_HORA) FROM TBFLUXOATEND
INNER JOIN ATCABECATEND_TBSENHAATEND
ON TBFLUXOATEND.ID_TBSENHAATEND=ATCABECATEND_TBSENHAATEND.ID_TBSENHAATEND
WHERE TBFLUXOATEND.ID_TBLOCAL IN (7,8,9)
AND TBFLUXOATEND.ACAO='C'
AND ATCABECATEND.ID=ATCABECATEND_TBSENHAATEND.ID_ATCABECATEND) AGUARDANDO,
--SALA DE RECUPERACAO
(SELECT FIRST 1 (TBFLUXOATEND.DATA_HORA)FROM TBFLUXOATEND
INNER JOIN ATCABECATEND_TBSENHAATEND
ON TBFLUXOATEND.ID_TBSENHAATEND=ATCABECATEND_TBSENHAATEND.ID_TBSENHAATEND
WHERE TBFLUXOATEND.ID_TBLOCAL IN (7,8,9)
AND TBFLUXOATEND.ACAO='L'
AND ATCABECATEND.ID=ATCABECATEND_TBSENHAATEND.ID_ATCABECATEND) RECUPERACAO
FROM RECADATE
INNER JOIN ATCABECATEND ON RECADATE.ID_ATCABECATEND=ATCABECATEND.ID
INNER JOIN ricadpac ON RICADPAC.ID=atcabecatend.id_ricadpac
WHERE RECADATE.UNIDADE IN (14,15,16,17)
AND CAST(ATCABECATEND.DATA_HORA_ENTRADA AS DATE)=current_date
ORDER BY RECADATE.DT_ATE, RECADATE.REG
;
Marcos Batista

Marcos Batista

Responder

Posts

24/02/2022

Emerson Nascimento

SELECT
	RE.DT_ATE,
	RE.REG,
	RE.PRONT,
	RI.nome,
	RI.nasc,

	--PACIENTE AGUARDANDO
	--SE O CAMPO FAT.DATA_HORA **NAO** FOR CARACTER,
	--SERÁ NECESSÁRIO UM CAST PARA TRANSFORMA-LO EM CARACTER.
	--SE ISSO NAO FOR FEITO SERA APRESENTADO ERRO, PORQUE UM
	--MESMO CAMPO NAO PODE TER DOIS TIPOS DE RESULTADO (DATA E 'AGUARDANDO')
	COALESCE(MAX(CASE WHEN FAT.ACAO='C' THEN FAT.DATA_HORA ELSE NULL END), 'AGUARDANDO') AGUARDANDO,

	--SALA DE RECUPERACAO
	--SE O CAMPO FAT.DATA_HORA **NAO** FOR CARACTER,
	--SERÁ NECESSÁRIO UM CAST PARA TRANSFORMA-LO EM CARACTER.
	--SE ISSO NAO FOR FEITO SERA APRESENTADO ERRO, PORQUE UM
	--MESMO CAMPO NAO PODE TER DOIS TIPOS DE RESULTADO (DATA E 'AGUARDANDO')
	COALESCE(MAX(CASE WHEN FAT.ACAO='L' THEN FAT.DATA_HORA ELSE NULL END), 'AGUARDANDO') AGUARDANDO,
FROM
	RECADATE RE
INNER JOIN
	ATCABECATEND AT ON AT.ID = RE.ID_ATCABECATEND
INNER JOIN
	ricadpac RI ON RI.ID = AT.id_ricadpac
LEFT JOIN
	ATCABECATEND_TBSENHAATEND SAT ON SAT.ID_ATCABECATEND = AT.ID
LEFT JOIN TBFLUXOATEND FAT ON FAT.ID_TBSENHAATEND = SAT.ID_TBSENHAATEND
	AND (FAT.ACAO='L' OR FAT.ACAO='C')
	AND FAT.ID_TBLOCAL IN (7,8,9)
WHERE
	RE.UNIDADE IN (14,15,16,17)
	AND CAST(AT.DATA_HORA_ENTRADA AS DATE)=current_date
GROUP BY
	RE.DT_ATE,
	RE.REG,
	RE.PRONT,
	RI.nome,
	RI.nasc
ORDER BY
	RE.DT_ATE, RE.REG
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