Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

2 Databases compare

Hi

I have two Databases. They have both the same tables with the same name. I have to check if there are in both the same data. How should I do that?

16 Replies
Andrea_Ghirardello

You have several options:

A- you can create a table using inner join

B- you can load at first one table (master one) adding a new field (flag_1=1), then load the second one using different alias with an additional field (flag_2=2), finally you can create a  table containing rows from both tables in this way:

1. Create new table FINAL_TABLE adding rows from table_1 inner join table_2 with a new field (flag=3)

2. add rows from table_1 where keys not exists in FINAL_TABLE (or using left join) and set flag=1

3. add rows from table_2 where keys not exists in FINAL_TABLE (or using right join) and set flag=2

4. drop tables table_1 and table_2

solution B is more complicated but you can identify each row: Rows with flag = 3 are rows that are common to Table_1 and Table_2; rows with flag = 1 are rows that are present only in Table_1; rows with flag = 2 are rows that are present only in Table_2

Not applicable
Author

How can I add a new field?

Andrea_Ghirardello

For example:

LOAD

     Field1,

     Field2,

     1 as AdditionalField

FROM .\YourData.qvd (qvd);

Andrea_Ghirardello

See attached example

Not applicable
Author

Hi

It's near to work but if i load it then i got an error: Table not found.

Isn't it possible to get a name to an ODBC Connection or do i have to take the name like in SQL: FROM a.table?

Andrea_Ghirardello

Do you mean that the example raise an error while reloading?

Did you estract source data .xlsx from the zip?

Not applicable
Author

No yours working fine. I did one for my two ODBC Databases and there it didnt work

Andrea_Ghirardello

Post the script or a test environment.

Not applicable
Author

ODBC CONNECT TO [DB01;DBQ=DB01] (XUserId is asdasdasd, XPassword is aPassword);

"DB01":

Load *,

Date(Floor(DATETIME)) as Date Where

Date(DATETIME,'DD.MM.YYYY')>='23.07.2013';

SQL SELECT ID,

                   DATETIME    

FROM Test1.table1;

ODBC CONNECT TO [DB02;DBQ=DB02] (XUserId is asdasdasdasdasssda, XPassword is anotherPassword);

"DB02":

Load *,

Date(Floor(DATETIME)) as Date Where

Date(DATETIME,'DD.MM.YYYY')>='23.07.2013';

SQL SELECT ID,

                     DATETIME

FROM Test2."table2";

"InnerJoinTable":

Load *

Resident DB01;

Inner Join load *

Resident DB02;

"UnionTable":

Load *,

  'matching rows' as Flag

Resident InnerJoinTable;

add Load *,

  'DB01' as Flag

Resident DB01;

add LOAD *,

  'DB02' as Flag

Resident DB02;

drop Table InnerJoinTable;