Jump to content
Fórum Script Brasil
  • 0

Dados Repetidos


MMachado

Question

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

  • 0

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!!

Link to comment
Share on other sites

  • 0

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).

MMachado

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!!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...