Select com erro
Colegas tenho duas tabelas um Exame com os campos: [color=red:72598bbd29]CD_EXAME, NU_CASO, NU_OFICIO, NU_PROCESSO, DT_CADASTRO, NM_SU_PAI, NU_RG_SU_PAI,
NU_CPF_SU_PAI, DE_END_SU_PAI, DE_COMP_SU_PAI, NU_FONE_SU_PAI, NM_MAE, DE_END_MAE, DE_COMP_MAE, NU_CPF_MAE, NU_RG_MAE, NU_FONE_MAE, NM_FILHO, DE_END_FILHO, DE_COMP_FILHO,
DE_SEX_FILHO, DT_NASCIM, DE_FALECIDO[/color:72598bbd29]
É Falecido com os campos: [color=red:72598bbd29]CD_FALECIDO, CD_CASO, NU_CASO, F.NM_FILHO1, FILHO1_RG, FILHO1_CPF, FILHO1_FONE, FILHO1_END, NM_FILHO2, FILHO2_RG, FILHO2_CPF, FILHO2_FONE, FILHO2_END, NM_FILHO3,
FILHO3_RG, FILHO3_CPF, FILHO3_FONE, FILHO3_END, NM_IRMAO1, IRMAO1_RG, IRMAO1_CPF, IRMAO1_FONE, IRMAO1_END, NM_IRMAO2, IRMAO2_RG, IRMAO2_CPF, IRMAO2_FONE, IRMAO2_END, NM_IRMAO3, IRMAO3_RG, IRMAO3_CPF, IRMAO3_FONE, IRMAO3_END, NM_PAI, PAI_RG, PAI_CPF, PAI_FONE, PAI_END, NM_MAE, MAE_RG, MAE_CPF, MAE_FONE, MAE_END[/color:72598bbd29]
Os campos [color=green:72598bbd29]cd_exame [/color:72598bbd29]de Examo é [color=green:72598bbd29]cd_falecido [/color:72598bbd29]e [color=green:72598bbd29]cd_caso [/color:72598bbd29]de Falecido são chaves.
Problema: tenho esse select” select e.cd_exame, e.nu_caso, e.nu_oficio, e.nu_processo, e.dt_cadastro, e.nm_su_pai, e.nu_rg_su_pai, e.nu_cpf_su_pai, e.de_end_su_pai, e.de_comp_su_pai, e.nu_fone_su_pai, mae2 = e.nm_mae, e.de_end_mae, e.de_comp_mae, e.nu_cpf_mae, e.nu_rg_mae, e.nu_fone_mae, e.nm_filho, e.de_end_filho, e.de_comp_filho, e.de_sex_filho, e.dt_nascim, de_falecido = (case e.de_falecido when ´0´ then ´não´
when ´1´ then ´sim´
end),
f.cd_falecido, f.cd_caso, f.nu_caso, f.nm_filho1, f.filho1_rg, f.filho1_cpf, f.filho1_fone,
f.filho1_end, f.nm_filho2, f.filho2_rg, f.filho2_cpf, f.filho2_fone, f.filho2_end, f.nm_filho3, f.filho3_rg, f.filho3_cpf, f.filho3_fone, f.filho3_end, f.nm_irmao1, f.irmao1_rg, f.irmao1_cpf, f.irmao1_fone, f.irmao1_end, f.nm_irmao2, f.irmao2_rg, f.irmao2_cpf, f.irmao2_fone, f.irmao2_end, f.nm_irmao3, f.irmao3_rg, f.irmao3_cpf, f.irmao3_fone, f.irmao3_end, f.nm_pai, f.pai_rg, f.pai_cpf, f.pai_fone, f.pai_end, f.nm_mae, f.mae_rg, f.mae_cpf, f.mae_fone, f.mae_end
from exame e, falecido f ”
Se não tiver nenhum registro na tabela Falecido o select retorna nada, se tiver um registro retorna os registros corretamente más se tiver dois ou mais registros na tabela falecido o select duplica os registros o que estou fazendo de errado?.
NU_CPF_SU_PAI, DE_END_SU_PAI, DE_COMP_SU_PAI, NU_FONE_SU_PAI, NM_MAE, DE_END_MAE, DE_COMP_MAE, NU_CPF_MAE, NU_RG_MAE, NU_FONE_MAE, NM_FILHO, DE_END_FILHO, DE_COMP_FILHO,
DE_SEX_FILHO, DT_NASCIM, DE_FALECIDO[/color:72598bbd29]
É Falecido com os campos: [color=red:72598bbd29]CD_FALECIDO, CD_CASO, NU_CASO, F.NM_FILHO1, FILHO1_RG, FILHO1_CPF, FILHO1_FONE, FILHO1_END, NM_FILHO2, FILHO2_RG, FILHO2_CPF, FILHO2_FONE, FILHO2_END, NM_FILHO3,
FILHO3_RG, FILHO3_CPF, FILHO3_FONE, FILHO3_END, NM_IRMAO1, IRMAO1_RG, IRMAO1_CPF, IRMAO1_FONE, IRMAO1_END, NM_IRMAO2, IRMAO2_RG, IRMAO2_CPF, IRMAO2_FONE, IRMAO2_END, NM_IRMAO3, IRMAO3_RG, IRMAO3_CPF, IRMAO3_FONE, IRMAO3_END, NM_PAI, PAI_RG, PAI_CPF, PAI_FONE, PAI_END, NM_MAE, MAE_RG, MAE_CPF, MAE_FONE, MAE_END[/color:72598bbd29]
Os campos [color=green:72598bbd29]cd_exame [/color:72598bbd29]de Examo é [color=green:72598bbd29]cd_falecido [/color:72598bbd29]e [color=green:72598bbd29]cd_caso [/color:72598bbd29]de Falecido são chaves.
Problema: tenho esse select” select e.cd_exame, e.nu_caso, e.nu_oficio, e.nu_processo, e.dt_cadastro, e.nm_su_pai, e.nu_rg_su_pai, e.nu_cpf_su_pai, e.de_end_su_pai, e.de_comp_su_pai, e.nu_fone_su_pai, mae2 = e.nm_mae, e.de_end_mae, e.de_comp_mae, e.nu_cpf_mae, e.nu_rg_mae, e.nu_fone_mae, e.nm_filho, e.de_end_filho, e.de_comp_filho, e.de_sex_filho, e.dt_nascim, de_falecido = (case e.de_falecido when ´0´ then ´não´
when ´1´ then ´sim´
end),
f.cd_falecido, f.cd_caso, f.nu_caso, f.nm_filho1, f.filho1_rg, f.filho1_cpf, f.filho1_fone,
f.filho1_end, f.nm_filho2, f.filho2_rg, f.filho2_cpf, f.filho2_fone, f.filho2_end, f.nm_filho3, f.filho3_rg, f.filho3_cpf, f.filho3_fone, f.filho3_end, f.nm_irmao1, f.irmao1_rg, f.irmao1_cpf, f.irmao1_fone, f.irmao1_end, f.nm_irmao2, f.irmao2_rg, f.irmao2_cpf, f.irmao2_fone, f.irmao2_end, f.nm_irmao3, f.irmao3_rg, f.irmao3_cpf, f.irmao3_fone, f.irmao3_end, f.nm_pai, f.pai_rg, f.pai_cpf, f.pai_fone, f.pai_end, f.nm_mae, f.mae_rg, f.mae_cpf, f.mae_fone, f.mae_end
from exame e, falecido f ”
Se não tiver nenhum registro na tabela Falecido o select retorna nada, se tiver um registro retorna os registros corretamente más se tiver dois ou mais registros na tabela falecido o select duplica os registros o que estou fazendo de errado?.
Mssilva
Curtidas 0
Respostas
Raserafim
23/10/2005
tenta usar o distinct
a função desta cláusula é filtrar as duplicações
select distinct ...
a função desta cláusula é filtrar as duplicações
GOSTEI 0
Mssilva
23/10/2005
Não funcionou
GOSTEI 0
Rjun
23/10/2005
Esse seu SELECT vai retornar todos os registros da segunda tabela vezes o registro da primeira tabela. O que realmente você quer fazer?
GOSTEI 0