MMachado Postado Abril 23, 2012 Denunciar Share Postado Abril 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Abril 23, 2012 Denunciar Share Postado Abril 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!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MMachado Postado Abril 24, 2012 Autor Denunciar Share Postado Abril 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!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Abril 24, 2012 Denunciar Share Postado Abril 24, 2012 rs... ai tem que duplicar. Precisando estamos ai!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.