Retornar apenas a linha com a faixa de idade

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Dom, 22 Mar 2020 8:45 pm

Prezados Boa Noite
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.

Código: Selecionar todos
(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
Código: Selecionar todos
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
ewerton.sousa

Mensagemem Qua, 25 Mar 2020 1:50 pm

Tenta assim

Código: Selecionar todos
(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)

   and DBAMV.FN_IDADE (PA.DT_NASCIMENTO, 'a', SYSDATE) between VL_REFERENCIA_INICIAL and VL_REFERENCIA_FINAL
)
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes