Ir para conteúdo
Fórum Script Brasil
  • 0

Select em SQL para dados iguais...


Markleber

Pergunta

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

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

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

Link para o comentário
Compartilhar em outros 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...

Link para o comentário
Compartilhar em outros 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 

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...