Jump to content
Fórum Script Brasil
  • 0
Sign in to follow this  
Markleber

Select em SQL para dados iguais...

Question

Pessoal, bom dia... Sou novo em SQL, apesar de desenvolver programação em VISUAL FOXPRO e preciso da ajuda de vocês...

Tenho dois bancos de dados, contendo os mesmos campos, ou seja, a estrutura de um é a mesma do outro... Preciso encontrar valores iguais nos campos de um no outro, só que esses campos, não estão ordenados na mesma sequência de campos... Vejam um exemplo:

banco 1 - campos: d01,d02,d03,d04,d05,d06,d07,d08,d09,d10,d11,d12,d13,d14,d15 - valores respectivamente: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

banco 2 - campos: d01,d02,d03,d04,d05,d06,d07,d08,d09,d10,d11,d12,d13,d14,d15 - valores respectivamente: 1,2,3,4,5,6,7,8,9,10,11,12,13,16,17

Reparem que o banco 1 e o banco 2, possuem 13 números iguais e estão em sequência por coincidência, mas podem não estar, pois trata-se de combinações, mas quero que o meu select, traga todos os registros que conterem 13 números iguais, independente da ordem dos campos...

Desde já agradeço...

MARCELO

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

eu não sei se entendi bem o que você quer, mas testa aí:

 

SELECT * FROM BANCO1.DBO.TABELA A
INNER JOIN BANCO2.DBO.TABELA B ON B.CAMPO1 = A.CAMPO1 AND B.CAMPO2 = A.CAMPO2 AND B.CAMPO3 = A.CAMPO3

 

Share this post


Link to post
Share on other sites
  • 0
48 minutos atrás, .Andreia. disse:

eu não sei se entendi bem o que você quer, mas testa aí:

 

SELECT * FROM BANCO1.DBO.TABELA A
INNER JOIN BANCO2.DBO.TABELA B ON B.CAMPO1 = A.CAMPO1 AND B.CAMPO2 = A.CAMPO2 AND B.CAMPO3 = A.CAMPO3

 

Andreia, obrigado... Funcionou em partes e em relação ao que eu queria. A cláusula AND não trouxe nada, mudei então para OR, pois são campos iguais mas com valores diferentes em cada campo. Ainda farei mais alguns testes e caso precise, cito você novamente, ok ? Mais uma vez obrigado.

Share this post


Link to post
Share on other sites
  • 0
14 horas atrás, Markleber disse:

Andreia, obrigado... Funcionou em partes e em relação ao que eu queria. A cláusula AND não trouxe nada, mudei então para OR, pois são campos iguais mas com valores diferentes em cada campo. Ainda farei mais alguns testes e caso precise, cito você novamente, ok ? Mais uma vez obrigado.

Andreia, vamos ver se consigo ser mais claro...

* Tenho 2 bancos de dados com os campos iguais, sendo eles: banco1 e banco2, ok ?

* Em ambos, a estrutura é exatamente igual, ou seja, campos iguais, porém, dados diferentes... A estrutura é: banco1.d01,banco1.d02,banco1.d03,banco1.d04,banco1.d05,banco1.d06,banco1.d02.... até banco1.d15 e a mesma estrutura para o banco2, ok ?

* Vou pegar o primeiro registro do banco1 e encontrar no banco2, os dados que forem exatamente iguais em 13, veja bem, os dados, o conteúdo dos campos ok ?

Exemplo: banco1: o primeiro registro é, dentro da estrutura, 1,2,3,4,5,8,9,10,14,15,16,19,20,21,25 e banco2, temos 3 registros, sendo o primeiro: 9,10,14,15,16,19,25,1,2,3,4,5,6,21,23 - repare que não está em ordem crescente do primeiro ao último campo e isso para mim, não há necessidade, mas preciso que esse primeiro registro, tenha em relação ao banco1, primeiro registro, exatamente 13 valores dos dados iguais, então no SELECT, deverá trazer esse campo, por que ? porque ele tem em comum entre os dois registros 13 dados iguais, sendo eles, 1,2,3,4,5,9,10,14,15,16,19,21,25 não tendo em relação ao banco1, os dados 8 e 20, ok ?

Outro exemplo, com esse mesmo primeiro registro é, 1,2,3,4,5,8,9,10,14,15,16,19,20,21,25 e banco2, segundo registro: 9,10,14,15,16,19,25,1,2,3,4,5,8,21,23, então no SELECT não deverá trazer esse registro, por que ? porque ele tem em comum entre os dois registros, 14 dados iguais, sendo eles, 1,2,3,4,5,8,9,10,14,15,16,19,21,25.

Espero ter sido muito mais claro agora e obrigado mesmo, pela ajuda que está me dando, garanto que você ainda será muito compensada por me ajudar...

Obrigado mais uma vez...

Share this post


Link to post
Share on other sites
  • 0

Bom dia Mark,

veja se dessa vez acertei no que você está precisando:

select 
case when A.d01 <> B.d01 then NULL else B.d01 end d01,
case when A.d02 <> B.d02 then NULL else B.d02 end d02,
case when A.d03 <> B.d03 then NULL else B.d03 end d03,
case when A.d04 <> B.d04 then NULL else B.d04 end d04,
case when A.d05 <> B.d05 then NULL else B.d05 end d05,
case when A.d06 <> B.d06 then NULL else B.d06 end d06,
case when A.d07 <> B.d07 then NULL else B.d07 end d07,
case when A.d08 <> B.d08 then NULL else B.d08 end d08,
case when A.d09 <> B.d09 then NULL else B.d09 end d09,
case when A.d10 <> B.d10 then NULL else B.d10 end d10,
case when A.d11 <> B.d11 then NULL else B.d11 end d11,
case when A.d12 <> B.d12 then NULL else B.d12 end d12,
case when A.d13 <> B.d13 then NULL else B.d13 end d13,
case when A.d14 <> B.d14 then NULL else B.d14 end d14,
case when A.d15 <> B.d15 then NULL else B.d15 end d15
from banco1 A, banco2 

 

Share this post


Link to post
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.

Sign in to follow this  

Cloud Computing


  • Forum Statistics

    • Total Topics
      148402
    • Total Posts
      643804
×
×
  • Create New...