Duplicidade de registro por conta de um join

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
xprata
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 93
Registrado em: Ter, 06 Abr 2010 11:31 am
Localização: São Paulo - SP

Bom dia ....
Estou tendo problema com o retorno de uma query e achei o problema...
Um das tabelas está com informação duplicada...
Portanto uma saída rápida foi substituir o join por subquery com retorno de uma linha, segue o exemplo

Selecionar tudo

SELECT Nome, 
(SELECT cnpj FROM tabela_cnpj  WHERE id = c.id_cnpj AND ROWNUM = 1) cnpj 
FROM tabela_cliente c
WHERE (SELECT Count(*) FROM tabela_cnpj WHERE id_cnpj = c.id) > 0


antes com join

Selecionar tudo

SELECT Nome, cnpj
FROM tabela_cliente c
join tabela_cnpj j on c.id_cnpj = j.id
A dúvida é: Existe uma forma melhor de se fazer isso, pois tive que usar 2 subquerys ?
Obrigado
t+
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Boa tarde,

Você pode usar SELECT Distinct Nome, cnpj

mas o ideal é analisar se a sua tabela deveria permitir a duplicidade.
xprata
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 93
Registrado em: Ter, 06 Abr 2010 11:31 am
Localização: São Paulo - SP

Obrigado pelo retorno
Pois é como tem muita gente mexendo..informei a duplicidade estão avaliando...
Portanto terei q fazer uma saída leão da montanha até que resolvam a duplicidada kkk
Obrigado
att
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes