comparação urgente

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Sex, 18 Jan 2008 4:25 pm

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:


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.

OW TINEKS SE TIVER LENDO DÁ UMA FORÇA AI COMPANHEIRO!!
carlos12
Localização: rio

Mensagemem Sex, 18 Jan 2008 4:42 pm

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
Tineks
Localização: Araraquara - SP

Cristiano (Tineks)
Araraquara - SP

Mensagemem Sex, 18 Jan 2008 4:45 pm

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?
carlos12
Localização: rio

Mensagemem Sex, 18 Jan 2008 4:47 pm

Brother,

Fiz um teste aqui...
Código: Selecionar todos
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...
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Sex, 18 Jan 2008 4:54 pm

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:
carlos12
Localização: rio

Mensagemem Sex, 18 Jan 2008 4:56 pm

Opa brother,

Precisando, conte com a gente aqui!
Trevisolli
Localização: Araraquara - SP

Abraço,

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

Mensagemem Sex, 18 Jan 2008 4:58 pm

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

tabela 1 com alguns registros
Código: Selecionar todos
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
Código: Selecionar todos
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..
Código: Selecionar todos
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.
Código: Selecionar todos
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.
Código: Selecionar todos
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
Tineks
Localização: Araraquara - SP

Cristiano (Tineks)
Araraquara - SP



Voltar para SQL

Quem está online

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