Fiz uma query que me retorna as seguintes informações
Idade sendo a do paciente
valor referencia de um exame
e o ano inicial e o ano final.
Como faço um case para ele retornar apenas a linha que corresponde a faixa de idade dele.
(SELECT DBAMV.FN_IDADE (PA.DT_NASCIMENTO, 'a', SYSDATE)IDADE,
DECODE (VR.TP_SEXO,
'M', 'Masculino',
'F', 'Feminino',
'A', 'Ambos')
|| ' - '|| 'De'|| ': '|| (VL_REFERENCIA_INICIAL)|| ' a '|| (VL_REFERENCIA_FINAL) AS VALOR_REFERENCIA,
NR_ANO_INICIAL,
NR_ANO_FINAL
FROM DBAMV.PACIENTE PA
INNER JOIN DBAMV.TB_ATENDIME AT
ON PA.CD_PACIENTE = AT.CD_PACIENTE
INNER JOIN DBAMV.PED_LAB PL
ON PL.CD_ATENDIMENTO = AT.CD_ATENDIMENTO
INNER JOIN DBAMV.ITPED_LAB IPL
ON IPL.CD_PED_LAB = PL.CD_PED_LAB
INNER JOIN DBAMV.VERSAO VER
ON VER.CD_EXA_LAB = IPL.CD_EXA_LAB
INNER JOIN DBAMV.VAL_REFERENCIA VR
ON VR.CD_VERSAO = VER.CD_VERSAO
WHERE AT.CD_ATENDIMENTO = 3031175
AND VER.CD_EXA_LAB = 2992
AND VR.NM_CAMPO IN ('LINFOCITOS')
AND VER.CD_VERSAO IN
(SELECT MAX (VER.CD_VERSAO)
FROM DBAMV.VERSAO VER
INNER JOIN DBAMV.VAL_REFERENCIA VAL
ON VER.CD_VERSAO = VAL.CD_VERSAO
AND VAL.NM_CAMPO = 'LINFOCITOS'
WHERE CD_EXA_LAB = 2992))
RESULTADO
idade valor_referencia nr_ano_inicial nr_ano_final
64 Ambos - De: 38 a 70 0 8
64 Ambos - De: 20 a 50 8 200