Есть ли способ тройной проверки соответствия данных между тремя таблицами и показать, есть ли расхождения в какой-либо из трех таблиц?
Каждая таблица не полностью одинакова, но все они имеют столбцы EmployeeID
, amount
, datepaid
и CID
.
Когда я делал с двумя таблицами, я думал, что у меня есть SQL как:
SELECT tbMaster.EmployeeID, tbMaster.Amount, tbMaster.DatePaid, tbMaster.CID
FROM tbMaster LEFT JOIN tbCID ON (tbMaster.CID = tbCID.CID) AND (tbMaster.Amount = tbCID.Amount) AND (tbMaster.DatePaid = tbCID.DatePaid)
WHERE (((tbMaster.[Advance/paid])="Paid Respondent") AND ((tbCID.CID) Is Null));
Это сработало, но если у tbCID
были какие-то расхождения, оно не уловило его ...
Итак, для трех таблиц я подумал:
SELECT tbMaster.EmployeeID, tbMaster.Amount, tbMaster.DatePaid, tbMaster.[Advance/paid], tbMaster.CID
FROM tbMaster, tbCID, table3
WHERE tbMaster.CID <> tbCID.CID
OR table3.CID <> tbMaster.CID
OR table3.CID <> tbCID.CID
OR tbMaster.Amount <> tbCID.Amount
OR table3.AMOUNT <> tbMaster.AMOUNT
OR table3.AMOUNT <> tbCID.AMOUNT
OR tbMaster.Datepaid <> tbCID.Datepaid
OR table3.DATEPAID <> tbMaster.DATEPAID
OR table3.DATEPAID <> tbCID.DATEPAID
Но есть только 30 записей, но я получаю 5 или 6 копий и получаю более 30000 строк / записей в запросе ...