Nomear campo NULL - Firebird

SQL

MySQL

Oracle

Firebird

24/02/2022

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

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

24/02/2022

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
GOSTEI 0
POSTAR