Pagina 1 di 1

CONFRONTO DUE DATABASE

Inviato: lun 9 ago 2021, 11:30
da Alieno86
Buongiorno,

avrei necessità di confrontare due database, entrambi sono di circa un milione e mezzo di record.
Avrei bisogno di vedere solo le righe differenti, i database hanno campi identici tranne il campo id che non corrisponde, ma che potrebbe benissimo essere eliminato.

Penso che giocando con i join e accodamento tabelle qualcosa si possa fare, e chiedo consiglio su come eseguire la cosa.


P.s. posso affrontare la cosa anche tramite sql.

cordiali saluti

CONFRONTO DUE DATABASE

Inviato: lun 9 ago 2021, 13:11
da Enrico Galli
Ciao. Con Power query puoi fare un merge di query impostato con il left anti-join, e in modo simile con SQL farai

Codice: Seleziona tutto

SELECT *
FROM db1
LEFT JOIN db2 ON
db1.key = db2.key
WHERE db2.key IS NULL

CONFRONTO DUE DATABASE

Inviato: lun 9 ago 2021, 14:38
da Alieno86
Enrico Galli ha scritto: lun 9 ago 2021, 13:11 Ciao. Con Power query puoi fare un merge di query impostato con il left anti-join, e in modo simile con SQL farai

Codice: Seleziona tutto

SELECT *
FROM db1
LEFT JOIN db2 ON
db1.key = db2.key
WHERE db2.key IS NULL
Scusami Enrico mi sono espresso male non sono due database ma due tabelle dello stesso database; penso che modificando il codice sql potrei riuscirci lo stesso.

CONFRONTO DUE DATABASE

Inviato: lun 9 ago 2021, 23:27
da Enrico Galli
Il codice è pensato per due tabelle, anche perché "confrontare due database", se di database veri e propri si tratta, è un concetto che sostanzialmente non ha senso, quindi avevo capito cosa intendevi dire :)

CONFRONTO DUE DATABASE

Inviato: mar 10 ago 2021, 11:02
da Alieno86
Allora son riuscito a far funzionare la query scrivendola cosi:

Codice: Seleziona tutto

SELECT *
FROM [dbo].[2020]
LEFT JOIN  [dbo].[2020N] ON
[dbo].[2020].ID = [dbo].[2020N].ID
WHERE [dbo].[2020N].ID IS NULL
Le due tabelle si chiamano 2020 e 2020N, se ho capito bene il risultato è tutte le righe della tabella 2020 non presenti nella tabella 2020N escludendo il campo ID.

Invertendo il nome delle tabelle dovrei avere il risultato inverso ovvero tutti i record presenti nella tabella 2020N non contenuti nella 2020.

Chiedo conferma d'aver capito il funzionamento della query, e inoltre se lo ritenette opportuno spostate pure il topic in un altra sezione.

Saluti