Trazer todos os registros contidos na tabela A, independente de ter campo nulo na tabela B
Boa noite pessoal, como vai?
Tenho um script que não estou conseguindo finalizar pois preciso trazer dados de 2 tabelas, porém na segunda tabela não consta todos os registros existentes na primeira tabela. Vou exemplificar:
TABELA A
Sequencia
Exame
1233
Hemograma
1234
Malaria
1235
Toxoplasmose
1236
Ultrasson
TABELA B
Sequencia
Exame
Status Exame
1233
Hemograma
Realizado
1234
Malaria
Realizado
RETORNO ESPERADO
Sequencia
Exame
Status Exame
1233
Hemograma
Realizado
1234
Malaria
Realizado
1235
Toxoplasmose
nulo
1236
Ultrasson
nulo
Olá pessoal, como vai?
Tenho um script que não estou conseguindo finalizar pois preciso trazer dados de 2 tabelas, porém na segunda tabela não consta todos os registros existentes na primeira tabela. Vou exemplificar:
TABELA A
Sequencia Exame
1233 Hemograma
1234 Malaria
1235 Toxoplasmose
1236 Ultrassom
TABELA B
Sequencia Exame Status Exame
1233 Hemograma Realizado
1234 Malaria Realizado
RETORNO ESPERADO
Sequencia Exame Status Exame
1233 Hemograma Realizado
1234 Malaria Realizado
1235 Toxoplasmose Nulo
1236 Ultrassom Nulo
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------SELECT 1- Nesse select é exibido todos os exames contidos na mesma ficha/paciente (6 exames):
SELECT DISTINCT
F.NR_SEQ_EXAME,
SUBSTR(OBTER_DESC_EXAME(F.NR_SEQ_EXAME), 1, 255) DS_EXAME
FROM
LOTE_ENT_SECRETARIA A,
LOTE_ENT_INSTITUICAO B,
LOTE_ENT_SEC_FICHA C,
LOTE_ENT_SEC_FICHA_EXAM D,
PRESCR_MEDICA E,
PRESCR_PROCEDIMENTO F,
EXAME_LAB_RESULTADO G,
EXAME_LAB_RESULT_ITEM H
/* LOTE_ENT_RECONVOCADO I,
LOTE_ENT_RECONVOCADO_ITEM J,
LOTE_ENT_RECONVOCADO_CONT K*/
WHERE A.NR_SEQ_INSTITUICAO = B.NR_SEQUENCIA
AND C.NR_SEQ_LOTE_SEC = A.NR_SEQUENCIA
AND D.NR_SEQ_FICHA = C.NR_SEQUENCIA
AND E.NR_SEQ_FICHA_LOTE = C.NR_SEQUENCIA
AND E.NR_SEQ_LOTE_ENTRADA = A.NR_SEQUENCIA
AND F.NR_PRESCRICAO = E.NR_PRESCRICAO
AND G.NR_PRESCRICAO = E.NR_PRESCRICAO
AND H.NR_SEQ_RESULTADO = G.NR_SEQ_RESULTADO
/*AND I.NR_SEQ_FICHA_LOTE = C.NR_SEQUENCIA
AND I.NR_SEQ_LOTE_SEC = A.NR_SEQUENCIA
AND J.NR_PRESCRICAO = F.NR_PRESCRICAO
AND J.NR_SEQ_PRESCR = F.NR_SEQUENCIA
AND J.NR_SEQ_RECONVOCADO = I.NR_SEQUENCIA
AND K.NR_SEQ_RECONVOCADO = I.NR_SEQUENCIA */
AND E.NR_PRESCRICAO = 202130
AND F.IE_STATUS_ATEND = 35
AND F.IE_SUSPENSO = 'N'
-----------------------------------
SELECT 2 - Nesse select é exibido somente os exames que possuem o campo "J.NR_SEQ_STATUS_RECONV" preenchido, (4 exames), os outros dois exames não são mostrados:
SELECT DISTINCT
F.NR_SEQ_EXAME,
SUBSTR(OBTER_DESC_EXAME(F.NR_SEQ_EXAME), 1, 255) DS_EXAME,
J.NR_SEQ_STATUS_RECONV
FROM
LOTE_ENT_SECRETARIA A,
LOTE_ENT_INSTITUICAO B,
LOTE_ENT_SEC_FICHA C,
LOTE_ENT_SEC_FICHA_EXAM D,
PRESCR_MEDICA E,
PRESCR_PROCEDIMENTO F,
EXAME_LAB_RESULTADO G,
EXAME_LAB_RESULT_ITEM H,
LOTE_ENT_RECONVOCADO I,
LOTE_ENT_RECONVOCADO_ITEM J,
LOTE_ENT_RECONVOCADO_CONT K
WHERE A.NR_SEQ_INSTITUICAO = B.NR_SEQUENCIA
AND C.NR_SEQ_LOTE_SEC = A.NR_SEQUENCIA
AND D.NR_SEQ_FICHA = C.NR_SEQUENCIA
AND E.NR_SEQ_FICHA_LOTE = C.NR_SEQUENCIA
AND E.NR_SEQ_LOTE_ENTRADA = A.NR_SEQUENCIA
AND F.NR_PRESCRICAO = E.NR_PRESCRICAO
AND G.NR_PRESCRICAO = E.NR_PRESCRICAO
AND H.NR_SEQ_RESULTADO = G.NR_SEQ_RESULTADO
AND I.NR_SEQ_FICHA_LOTE = C.NR_SEQUENCIA
AND I.NR_SEQ_LOTE_SEC = A.NR_SEQUENCIA
AND J.NR_PRESCRICAO = F.NR_PRESCRICAO
AND J.NR_SEQ_PRESCR = F.NR_SEQUENCIA
AND J.NR_SEQ_RECONVOCADO = I.NR_SEQUENCIA
AND K.NR_SEQ_RECONVOCADO = I.NR_SEQUENCIA
AND E.NR_PRESCRICAO = 202130
AND F.IE_STATUS_ATEND = 35
AND F.IE_SUSPENSO = 'N'
------------------------------------------------------------------------------
Preciso que o retorno do script traga os 6 exames, independente do campo "J.NR_SEQ_STATUS_RECONV" estar preenchido ou não.
Tentei usar (+), mas acredito que não estou utilizando nos campos / tabelas corretas.
Desde já agradeço a ajuda!
Janaina
Tenho um script que não estou conseguindo finalizar pois preciso trazer dados de 2 tabelas, porém na segunda tabela não consta todos os registros existentes na primeira tabela. Vou exemplificar:
TABELA A
Sequencia
Exame
1233
Hemograma
1234
Malaria
1235
Toxoplasmose
1236
Ultrasson
TABELA B
Sequencia
Exame
Status Exame
1233
Hemograma
Realizado
1234
Malaria
Realizado
RETORNO ESPERADO
Sequencia
Exame
Status Exame
1233
Hemograma
Realizado
1234
Malaria
Realizado
1235
Toxoplasmose
nulo
1236
Ultrasson
nulo
Olá pessoal, como vai?
Tenho um script que não estou conseguindo finalizar pois preciso trazer dados de 2 tabelas, porém na segunda tabela não consta todos os registros existentes na primeira tabela. Vou exemplificar:
TABELA A
Sequencia Exame
1233 Hemograma
1234 Malaria
1235 Toxoplasmose
1236 Ultrassom
TABELA B
Sequencia Exame Status Exame
1233 Hemograma Realizado
1234 Malaria Realizado
RETORNO ESPERADO
Sequencia Exame Status Exame
1233 Hemograma Realizado
1234 Malaria Realizado
1235 Toxoplasmose Nulo
1236 Ultrassom Nulo
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------SELECT 1- Nesse select é exibido todos os exames contidos na mesma ficha/paciente (6 exames):
SELECT DISTINCT
F.NR_SEQ_EXAME,
SUBSTR(OBTER_DESC_EXAME(F.NR_SEQ_EXAME), 1, 255) DS_EXAME
FROM
LOTE_ENT_SECRETARIA A,
LOTE_ENT_INSTITUICAO B,
LOTE_ENT_SEC_FICHA C,
LOTE_ENT_SEC_FICHA_EXAM D,
PRESCR_MEDICA E,
PRESCR_PROCEDIMENTO F,
EXAME_LAB_RESULTADO G,
EXAME_LAB_RESULT_ITEM H
/* LOTE_ENT_RECONVOCADO I,
LOTE_ENT_RECONVOCADO_ITEM J,
LOTE_ENT_RECONVOCADO_CONT K*/
WHERE A.NR_SEQ_INSTITUICAO = B.NR_SEQUENCIA
AND C.NR_SEQ_LOTE_SEC = A.NR_SEQUENCIA
AND D.NR_SEQ_FICHA = C.NR_SEQUENCIA
AND E.NR_SEQ_FICHA_LOTE = C.NR_SEQUENCIA
AND E.NR_SEQ_LOTE_ENTRADA = A.NR_SEQUENCIA
AND F.NR_PRESCRICAO = E.NR_PRESCRICAO
AND G.NR_PRESCRICAO = E.NR_PRESCRICAO
AND H.NR_SEQ_RESULTADO = G.NR_SEQ_RESULTADO
/*AND I.NR_SEQ_FICHA_LOTE = C.NR_SEQUENCIA
AND I.NR_SEQ_LOTE_SEC = A.NR_SEQUENCIA
AND J.NR_PRESCRICAO = F.NR_PRESCRICAO
AND J.NR_SEQ_PRESCR = F.NR_SEQUENCIA
AND J.NR_SEQ_RECONVOCADO = I.NR_SEQUENCIA
AND K.NR_SEQ_RECONVOCADO = I.NR_SEQUENCIA */
AND E.NR_PRESCRICAO = 202130
AND F.IE_STATUS_ATEND = 35
AND F.IE_SUSPENSO = 'N'
-----------------------------------
SELECT 2 - Nesse select é exibido somente os exames que possuem o campo "J.NR_SEQ_STATUS_RECONV" preenchido, (4 exames), os outros dois exames não são mostrados:
SELECT DISTINCT
F.NR_SEQ_EXAME,
SUBSTR(OBTER_DESC_EXAME(F.NR_SEQ_EXAME), 1, 255) DS_EXAME,
J.NR_SEQ_STATUS_RECONV
FROM
LOTE_ENT_SECRETARIA A,
LOTE_ENT_INSTITUICAO B,
LOTE_ENT_SEC_FICHA C,
LOTE_ENT_SEC_FICHA_EXAM D,
PRESCR_MEDICA E,
PRESCR_PROCEDIMENTO F,
EXAME_LAB_RESULTADO G,
EXAME_LAB_RESULT_ITEM H,
LOTE_ENT_RECONVOCADO I,
LOTE_ENT_RECONVOCADO_ITEM J,
LOTE_ENT_RECONVOCADO_CONT K
WHERE A.NR_SEQ_INSTITUICAO = B.NR_SEQUENCIA
AND C.NR_SEQ_LOTE_SEC = A.NR_SEQUENCIA
AND D.NR_SEQ_FICHA = C.NR_SEQUENCIA
AND E.NR_SEQ_FICHA_LOTE = C.NR_SEQUENCIA
AND E.NR_SEQ_LOTE_ENTRADA = A.NR_SEQUENCIA
AND F.NR_PRESCRICAO = E.NR_PRESCRICAO
AND G.NR_PRESCRICAO = E.NR_PRESCRICAO
AND H.NR_SEQ_RESULTADO = G.NR_SEQ_RESULTADO
AND I.NR_SEQ_FICHA_LOTE = C.NR_SEQUENCIA
AND I.NR_SEQ_LOTE_SEC = A.NR_SEQUENCIA
AND J.NR_PRESCRICAO = F.NR_PRESCRICAO
AND J.NR_SEQ_PRESCR = F.NR_SEQUENCIA
AND J.NR_SEQ_RECONVOCADO = I.NR_SEQUENCIA
AND K.NR_SEQ_RECONVOCADO = I.NR_SEQUENCIA
AND E.NR_PRESCRICAO = 202130
AND F.IE_STATUS_ATEND = 35
AND F.IE_SUSPENSO = 'N'
------------------------------------------------------------------------------
Preciso que o retorno do script traga os 6 exames, independente do campo "J.NR_SEQ_STATUS_RECONV" estar preenchido ou não.
Tentei usar (+), mas acredito que não estou utilizando nos campos / tabelas corretas.
Desde já agradeço a ajuda!
Janaina
Janaina
Curtidas 0
Melhor post
Fernando C
24/06/2018
para unir as tabelas nesse caso, use pesquise sobre "left join".
para exibir valores nulos em oracle, use a funcao NVL().
qqer coisa retorne.
para exibir valores nulos em oracle, use a funcao NVL().
qqer coisa retorne.
GOSTEI 2