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

Comparar duas tabelas com registros...


Markleber

Pergunta

Boa tarde à todos... Sou totalmente leigo em SQL e estou precisando de uma ajuda de vocês, aliás, um excelente ajuda. Tenho duas tabelas abaixo:

Tabela linaus07

d01 d02 d03 d04 d05 d06 d07
10 11 12 13 14 15 16
10 11 12 13 14 16 17
10 11 12 13 14 16 22

 

Tabela linrep07

d01 d02 d03 d04 d05 d06 d07 d08 d09 d10 d11 d12 d13 d14 d15
1 2 3 4 5 6 7 10 11 12 13 14 16 17 22
1 2 3 4 5 6 7 8 10 11 12 13 14 16 17
1 2 3 4 5 6 7 9 10 11 12 13 14 16 22

 

Então, o que preciso...???

Pego o 1 registro da tabela linaus07 contendo 7 campos e confronto com todos os registros da tabela linrep07 contendo 15 campos, reparem que o primeiro registro da tabela linaus07, confrontando com a tabela linrep07, em nenhum momento continha 7 iguais nos registros, então, não preciso fazer nada, porém, repare agora, que o segundo registro da tabela linaus07, confrontando com a tabela linrep07, encontramos 7 campos exatamente nos 15 campos da outra tabela, então, pego o registro da tabela linrep07 e gravo em outro banco de dados (um novo), o registro que contem esses 15 campos que tinham os 7 campos da tabela linaus07.

o que tem que ser respeitado...

Cada registro da tabela linaus07 contendo 7 campos, irá passar em todos os registros da tabela linrep07 contendo 15 campos e irá colocar num novo banco de dados, todos os registros que da tabela linrep07 tiverem exatamente os 7 campos da tabela linaus07 e ao final, esse novo banco, terá com certeza muito registros, mas preciso salvá-los em um arquivo .txt com o separador "-" entre os campos...

Espero ter sido claro... Obrigado 

MARCELO SAMPAIO

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Em 03/09/2018 em 15:04, Markleber disse:

Boa tarde à todos... Sou totalmente leigo em SQL e estou precisando de uma ajuda de vocês, aliás, um excelente ajuda. Tenho duas tabelas abaixo:

Tabela linaus07

d01 d02 d03 d04 d05 d06 d07
10 11 12 13 14 15 16
10 11 12 13 14 16 17
10 11 12 13 14 16 22

 

Tabela linrep07

d01 d02 d03 d04 d05 d06 d07 d08 d09 d10 d11 d12 d13 d14 d15
1 2 3 4 5 6 7 10 11 12 13 14 16 17 22
1 2 3 4 5 6 7 8 10 11 12 13 14 16 17
1 2 3 4 5 6 7 9 10 11 12 13 14 16 22

 

Então, o que preciso...???

Pego o 1 registro da tabela linaus07 contendo 7 campos e confronto com todos os registros da tabela linrep07 contendo 15 campos, reparem que o primeiro registro da tabela linaus07, confrontando com a tabela linrep07, em nenhum momento continha 7 iguais nos registros, então, não preciso fazer nada, porém, repare agora, que o segundo registro da tabela linaus07, confrontando com a tabela linrep07, encontramos 7 campos exatamente nos 15 campos da outra tabela, então, pego o registro da tabela linrep07 e gravo em outro banco de dados (um novo), o registro que contem esses 15 campos que tinham os 7 campos da tabela linaus07.

o que tem que ser respeitado...

Cada registro da tabela linaus07 contendo 7 campos, irá passar em todos os registros da tabela linrep07 contendo 15 campos e irá colocar num novo banco de dados, todos os registros que da tabela linrep07 tiverem exatamente os 7 campos da tabela linaus07 e ao final, esse novo banco, terá com certeza muito registros, mas preciso salvá-los em um arquivo .txt com o separador "-" entre os campos...

Espero ter sido claro... Obrigado 

MARCELO SAMPAIO

Oi Marcelo, sou novo no fórum, você conseguiu solucionar esse desafio?

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde,

 

Segue uma solução provisoria baseada nas informações que me passou, vejo se precisa adptar algo.

 

CREATE TABLE linaus07(
d01 INT,
d02 INT,
d03 INT,
d04 INT,
d05 INT,
d06 INT,
d07 INT
);

GO

INSERT INTO linaus07 SELECT 10,11,12,13,14,15,16;
INSERT INTO linaus07 SELECT 10,11,12,13,14,16,17;
INSERT INTO linaus07 SELECT 10,11,12,13,14,16,22;

GO

CREATE TABLE linrep07(
d01 INT,
d02 INT,
d03 INT,
d04 INT,
d05 INT,
d06 INT,
d07 INT,
d08 INT,
d09 INT,
d10 INT,
d11 INT,
d12 INT,
d13 INT,
d14 INT,
d15 INT,
);

GO

INSERT INTO linrep07 SELECT 1,2,3,4,5,6,7,10,11,12,13,14,16,17,22;
INSERT INTO linrep07 SELECT 1,2,3,4,5,6,7,8,10,11,12,13,14,16,17;
INSERT INTO linrep07 SELECT 1,2,3,4,5,6,7,9,10,11,12,13,14,16,22;

GO
SELECT * FROM (
SELECT PK= (  CONVERT(varchar,B.d09) + ','
            + CONVERT(varchar,B.d10) + ',' + CONVERT(varchar,B.d11) + ','
            + CONVERT(varchar,B.d12) + ',' + CONVERT(varchar,B.d13) + ',' 
            + CONVERT(varchar,B.d14) + ',' + CONVERT(varchar,B.d15)   
        )
    FROM linrep07 B
) J
WHERE J.PK IN (

SELECT * FROM (
SELECT 
            (
            CONVERT(varchar,A.d01) + ',' + CONVERT(varchar,A.d02) + ','
            + CONVERT(varchar,A.d03) + ',' + CONVERT(varchar,A.d04) + ','
            + CONVERT(varchar,A.d05) + ',' + CONVERT(varchar,A.d06) + ','
            + CONVERT(varchar,A.d07) 
            ) AS PK
    FROM linaus07 A
) K
)
 

Atte,

Marcos Roberto

 

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,3k
×
×
  • Criar Novo...