Jump to content
Fórum Script Brasil
  • 0

Comparar duas tabelas com registros...


Markleber

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
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.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...