comparação urgente

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
carlos12
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 123
Registrado em: Qua, 24 Out 2007 4:31 pm
Localização: rio

Olá pessoal estou precisando muito mas muito mesmo tirar uma duvida com vocês.

Bom o problema é o seguinte:

tabela 1 - cdcodigo

tabela 2 - cdcodigo

eu queria fazer uma comparação entre as duas tabela e o resultado me voltesse os quais são os registros duplicados tipo na tabela 1 tem tantos registro 10 que tem na tabela 2. Entenderam?

tentando melhorar digamos que na tabela 1 esteja assim:

Selecionar tudo

tabela 1                                    tabela2
cdcodigo                                    cdcodigo
1                                           50
5                                           88
101                                         23 
8                                           25
25                                          14
4                                           12
96                                          0
35                                          18
50                                          9
o resultado traria assim:

tem 2 registro 50
tem 2 registro 8

pessoal estou muito precisando vou ficar dando refresh pois preciso urgente

desde já agradeço a todos.

TINEKS SE TIVER LENDO DÁ UMA FORÇA AI COMPANHEIRO!!
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

E ai Carlos, tudo beleza?? pelo visto na correria né.. rs...

então, fique com uma duvida, registros duplicados você vai ter somente na tabela1 ou na tabela2 ou pode acontecer de ter registros duplicados nas duas tabelas??

[]'s
carlos12
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 123
Registrado em: Qua, 24 Out 2007 4:31 pm
Localização: rio

cara num sabe como é bom te vê, rs =)

eu quero fazer uma comparação de registro duplicados entre duas tabelas na tabela 1 só terá registros únicos nada repetido e na tabela 2 também só teram registros únicos nada repetido só que eu vou atualizar uma em cima da outra e pra num dá erro de duplicidade farei esse select e o que estiver duplicado eu deleto entendeu?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Fiz um teste aqui...

Selecionar tudo

SELECT   t2.codigo, COUNT (1)
    FROM t1, t2
   WHERE t1.codigo(+) = t2.codigo
GROUP BY t2.codigo
HAVING COUNT(t2.codigo) >0 
Vê se é mais ou menos isto... senão, só fazer uns ajustes... ( tipo, você deve colocar having count(t2.codigo)>1, para trazer os duplicados...
carlos12
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 123
Registrado em: Qua, 24 Out 2007 4:31 pm
Localização: rio

Cara deu certinho poxa vida cara salvou minha vida já entreguei o relatório, poxa brigadão de verdade cara.

Te devo mais essa.
ow espero poder ajudar vocês futuramente dexa só eu aprender mais um pouco. =)



:wink:
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Opa brother,

Precisando, conte com a gente aqui!
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

E ai Carlos, vê se isso pode ajudar.!!

tabela 1 com alguns registros

Selecionar tudo

SQL> SELECT * FROM mens_erro ORDER BY 1
  2  /

   CODIGO DESCRICAO
--------- ----------
       10 A
       20 B
       30 C
       50 D
       70 F
tabela 2 com registros novos e repetidos

Selecionar tudo

SQL> SELECT * FROM mens_erro2 ORDER BY 1
  2  /

   CODIGO DESCRICAO
--------- ----------
       20 B
       30 C
       60 E
incluindo na tabela 2 todos os registros que existem na 1 e não existem na 2..

Selecionar tudo

SQL> INSERT INTO mens_erro2
  2     SELECT *
  3       FROM mens_erro a
  4      WHERE NOT EXISTS (SELECT 1
  5                          FROM mens_erro2 b
  6                         WHERE b.codigo = a.codigo)
  7  /
agora gravando na 1 todos os que existem na 2 e não exitem na 1.

Selecionar tudo

SQL> INSERT INTO mens_erro
  2     SELECT *
  3       FROM mens_erro2 a
  4      WHERE NOT EXISTS (SELECT 1
  5                          FROM mens_erro b
  6                         WHERE b.codigo = a.codigo)
  7  /

1 row created.
consultando as 2 tabelas.

Selecionar tudo

SQL> SELECT * FROM mens_erro ORDER BY 1
  2  /

   CODIGO DESCRICAO
--------- ----------
       10 A
       20 B
       30 C
       50 D
       60 E
       70 F

6 rows selected.

SQL> SELECT * FROM mens_erro2 ORDER BY 1
  2  /

   CODIGO DESCRICAO
--------- ----------
       10 A
       20 B
       30 C
       50 D
       60 E
       70 F

6 rows selected.
vê ai se ajuda, qualquer coisa é só falar.!!
[]'s
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante