Nomear resultado

13/04/2022

0

Boa Tarde, preciso fazer com que no campo alta quando o resultado for = '30.12.1899' me traga o resultado como 'INTERNADO'

select
ricadint.segurado,
datediff(year, ricadpac.nasc,current_date) idade,
case when trunc((current_date - ricadpac.nasc) / 365.25) <= 14 then
'0 a 14'
when trunc((current_date - ricadpac.nasc) / 365.25) between 15 and 28 then
'15 a 28'
when trunc((current_date - ricadpac.nasc) / 365.25) between 29 and 42 then
'29 a 42'
when trunc((current_date - ricadpac.nasc) / 365.25) between 43 and 56 then
'43 a 56'
when trunc((current_date - ricadpac.nasc) / 365.25) between 57 and 71 then
'57 a 71'
when trunc((current_date - ricadpac.nasc) / 365.25) between 72 and 86 then
'72 a 86'
when trunc((current_date - ricadpac.nasc) / 365.25) >= 87 then
'>=87'
end as faixa_idade,
ricadpac.sexo,
ricadint.bloco,
ricadint.leito,
(select max(nome) from tbespec where tbespec.cod=ricadint.espec) despec,
(select max(nome) from tbconven where tbconven.cod=ricadint.conv) convenio,
ricadint.entrada,ricadint.alta, ricadint.anopro,ricadint.mespro,
(select tbtipoacomod.nome from tbtipoacomod where tbtipoacomod.id = ricadint.codacomod) acomodacao
from ricadint
inner join ricadpac on ricadpac.pront=ricadint.pront
where ricadint.entrada between :data1 and :data2
--where ricadint.alta='30.12.1899'
order by ricadint.bloco,
ricadint.bloco,
ricadint.acomod,
ricadint.leito
Marcos Batista

Marcos Batista

Responder

Post mais votado

13/04/2022

tente algo assim:
select
	ricadint.segurado,
	datediff(year, ricadpac.nasc,current_date) idade,
	case
		when trunc((current_date - ricadpac.nasc) / 365.25) <= 14 then '0 a 14'
		when trunc((current_date - ricadpac.nasc) / 365.25) between 15 and 28 then '15 a 28'
		when trunc((current_date - ricadpac.nasc) / 365.25) between 29 and 42 then '29 a 42'
		when trunc((current_date - ricadpac.nasc) / 365.25) between 43 and 56 then '43 a 56'
		when trunc((current_date - ricadpac.nasc) / 365.25) between 57 and 71 then '57 a 71'
		when trunc((current_date - ricadpac.nasc) / 365.25) between 72 and 86 then '72 a 86'
		when trunc((current_date - ricadpac.nasc) / 365.25) >= 87 then '>=87'
	end as faixa_idade,
	ricadpac.sexo,
	ricadint.bloco,
	ricadint.leito,
	(select max(nome) from tbespec where tbespec.cod=ricadint.espec) despec,
	(select max(nome) from tbconven where tbconven.cod=ricadint.conv) convenio,
	ricadint.entrada,

	-- um campo não pode ter dois tipos diferentes (data e texto)
	-- então sempre deverá ser apresentado um texto
	coalesce(cast(ricadint.alta as varchar(20)),'INTERNADO') alta,

	ricadint.anopro,
	ricadint.mespro,
	(select tbtipoacomod.nome from tbtipoacomod where tbtipoacomod.id = ricadint.codacomod) acomodacao
from
	ricadint
inner join
	ricadpac on ricadpac.pront=ricadint.pront
where
	ricadint.entrada between :data1 and :data2
order by
	ricadint.bloco,
	ricadint.bloco,
	ricadint.acomod,
	ricadint.leito

Emerson Nascimento

Emerson Nascimento
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar