MMachado Posted April 23, 2012 Report Share Posted April 23, 2012 Olá,Estou com uma dúvida na criação de uma View.Pois a mesma esta me retornando o mesmo dados varias vezes, não é o caso do select distinct, pois não são dados duplicados e sim o mesmo dado varios vezes, segue:create or replace view vdic_atendimento_chsbc asselect atendime.cd_loc_proced Codigo_Local_Procedencia , atendime.cd_ori_ate Codigo_da_Origem_Atendimento , paciente.nm_paciente Nome_Paciente , paciente.nm_mnemonico Nome_Social , atendime.cd_paciente Codigo_do_Paciente , paciente.nm_mae Nome_da_Mae_Paciente , responsavel.nm_responsavel Responsavel_do_Paciente , paciente.nr_identidade RG_Paciente , paciente.nr_cpf CPF_Paciente , responsavel.nr_identidade RG_Responsavel , paciente.tp_cor Cor_Paciente , paciente.tp_sexo Sexo_Paciente , paciente.dt_nascimento Data_Nascimento , paciente.cd_cns Cartao_CNS , atendime.nr_pre_natal Cartao_SIS_Pre_Natal , paciente.ds_endereco Endereco , paciente.nr_endereco Numero_End , paciente.ds_complemento Complemento_End , paciente.nm_bairro Bairro , cidade.nm_cidade Cidade , paciente.nr_cep CEP , uf.cd_uf UF , paciente.nr_fone Telefone , paciente.nr_celular Celular , prestador.nm_prestador Nome_do_Medico , atendime.cd_especialid Especialiade_do_Medico , atendime.cd_pro_int_procedimento_entrad Codigo_Prodec_Entrada , cid.cd_cid CID , atendime.cd_procedimento Procedimento From atendime , paciente , responsavel , cidade , UF , prestador , especialid , procedimento , cid, ori_ate , loc_proced where paciente.cd_paciente = atendime.cd_paciente and ori_ate.cd_ori_ate = atendime.cd_ori_ate and cid.cd_cid = atendime.cd_cid and loc_proced.cd_loc_proced = atendime.cd_loc_proced and especialid.cd_especialid = atendime.cd_especialid and prestador.cd_prestador = atendime.cd_prestador and paciente.cd_multi_empresa = atendime.cd_multi_empresa and paciente.cd_multi_empresa = prestador.cd_multi_empresaObrigado,MMachado Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted April 23, 2012 Report Share Posted April 23, 2012 Boa tarde MMachado, Se os dados não estão duplicados na tabela, pode ser um relacionamento 1 para N. Quando se realiza o select, há a duplicidade dos dados. O que pode fazer é pegar aleatoriamente um dado que repete, e pontualmente consultá-lo em todas as tabelas que realiza o join. Provavelmente encontrará uma tabela que possua um relacionamento 1 para N, com mais de um valor inserido. Para tirar a prova, altere/delete um dos valores e execute novamente seu select. Se o valor deixar de duplicar, encontrará a causa. Espero que ajude!! Quote Link to comment Share on other sites More sharing options...
0 MMachado Posted April 24, 2012 Author Report Share Posted April 24, 2012 Obrigado, ajudou sim!Na verdade estava faltanto um join no where, pois a relação (tab) responsavel não tinha relacionamento com nenhum relação (tab), procurei e localizei a relação (tab) responsa (cd_atendimento) que tem relacionamento com a tab atendime (cd_atendimento).MMachadoBoa tarde MMachado, Se os dados não estão duplicados na tabela, pode ser um relacionamento 1 para N. Quando se realiza o select, há a duplicidade dos dados. O que pode fazer é pegar aleatoriamente um dado que repete, e pontualmente consultá-lo em todas as tabelas que realiza o join. Provavelmente encontrará uma tabela que possua um relacionamento 1 para N, com mais de um valor inserido. Para tirar a prova, altere/delete um dos valores e execute novamente seu select. Se o valor deixar de duplicar, encontrará a causa. Espero que ajude!! Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted April 24, 2012 Report Share Posted April 24, 2012 rs... ai tem que duplicar. Precisando estamos ai!! Quote Link to comment Share on other sites More sharing options...
Question
MMachado
Olá,
Estou com uma dúvida na criação de uma View.
Pois a mesma esta me retornando o mesmo dados varias vezes, não é o caso do select distinct, pois não são dados duplicados e sim o mesmo dado varios vezes, segue:
create or replace view vdic_atendimento_chsbc as
select
atendime.cd_loc_proced Codigo_Local_Procedencia
, atendime.cd_ori_ate Codigo_da_Origem_Atendimento
, paciente.nm_paciente Nome_Paciente
, paciente.nm_mnemonico Nome_Social
, atendime.cd_paciente Codigo_do_Paciente
, paciente.nm_mae Nome_da_Mae_Paciente
, responsavel.nm_responsavel Responsavel_do_Paciente
, paciente.nr_identidade RG_Paciente
, paciente.nr_cpf CPF_Paciente
, responsavel.nr_identidade RG_Responsavel
, paciente.tp_cor Cor_Paciente
, paciente.tp_sexo Sexo_Paciente
, paciente.dt_nascimento Data_Nascimento
, paciente.cd_cns Cartao_CNS
, atendime.nr_pre_natal Cartao_SIS_Pre_Natal
, paciente.ds_endereco Endereco
, paciente.nr_endereco Numero_End
, paciente.ds_complemento Complemento_End
, paciente.nm_bairro Bairro
, cidade.nm_cidade Cidade
, paciente.nr_cep CEP
, uf.cd_uf UF
, paciente.nr_fone Telefone
, paciente.nr_celular Celular
, prestador.nm_prestador Nome_do_Medico
, atendime.cd_especialid Especialiade_do_Medico
, atendime.cd_pro_int_procedimento_entrad Codigo_Prodec_Entrada
, cid.cd_cid CID
, atendime.cd_procedimento Procedimento
From
atendime
, paciente
, responsavel
, cidade
, UF
, prestador
, especialid
, procedimento
, cid, ori_ate
, loc_proced
where
paciente.cd_paciente = atendime.cd_paciente
and ori_ate.cd_ori_ate = atendime.cd_ori_ate
and cid.cd_cid = atendime.cd_cid
and loc_proced.cd_loc_proced = atendime.cd_loc_proced
and especialid.cd_especialid = atendime.cd_especialid
and prestador.cd_prestador = atendime.cd_prestador
and paciente.cd_multi_empresa = atendime.cd_multi_empresa
and paciente.cd_multi_empresa = prestador.cd_multi_empresa
Obrigado,
MMachado
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.