2014-11-25 3 views
3

У меня есть две таблицы в базе данных Access, Table1 и Table2 с точно такой же структурой, но Table1 имеет больше данных. Я хочу выяснить, какие данные мне не хватает в таблице2. Первичный ключ для каждой таблицы состоит из текстовых полей:Сравнение двух таблиц доступа, идентичных по структуре, но не данных

  • CenterName
  • BuildingName
  • FloorNo
  • RoomNo

Каждый центр может иметь множество зданий и двух различных центров может иметь одноименное здание. Номера номеров и номера этажей могут быть одинаковыми в разных зданиях и разных центрах.

Я попытался

SELECT t1.CenterName, t1.BuildingName, t1.FloorNo, t1.RoomNo, t2.CenterName 
FROM Table1 as t1 LEFT JOIN Table2 as t2 ON t1.CenterName=t2.CenterName 
WHERE t2.CenterName Is Null; 

Но выше не возвращает никаких данных, то есть все эти центры находятся в обеих таблицах. Но это не говорит мне ничего о остальной части полей, которые могут отсутствовать в таблице2. Может ли кто-нибудь помочь в повторном написании моего запроса, чтобы он работал так, как предполагалось?

Я привык к базе данных SQL Server, поэтому создание запросов в Access для меня немного трудоемко. Прежде чем переносить все данные в SQL Server для анализа, я хотел посмотреть, могу ли я получить какую-либо помощь здесь.

ответ

3

Соедините все четыре поля, составляющие первичный ключ.

SELECT 
    t1.CenterName, 
    t1.BuildingName, 
    t1.FloorNo, 
    t1.RoomNo, 
    t2.CenterName 
FROM 
    Table1 AS t1 
    LEFT JOIN Table2 AS t2 
    ON 
      t1.CenterName = t2.CenterName 
     AND t1.BuildingName = t2.BuildingName 
     AND t1.FloorNo = t2.FloorNo 
     AND t1.RoomNo = t2.RoomNo 
WHERE t2.CenterName Is Null; 
+0

Это дает мне ошибку РЕГИСТРИРУЙТЕСЬ неподдерживаемый – ElenaDBA

+0

я только сейчас тестирование в Access 2010, созданный * Table1 * и * Table2 * с этими 4 текстовых полей в качестве первичного ключа в каждом. Добавлены данные в эти таблицы. Вставил SQL из этого ответа в SQL View нового запроса ... и он бежал без ошибок, извлекая запись * Table1 *, которая не существует в * Table2 *. Я не понимаю, почему это терпит неудачу для вас. Если вы разместите копию своего db на сайте обмена файлами, я рассмотрю его. – HansUp

+0

Извините, это было плохо, я сделал опечатку. Я побежал, и он побежал, но разбился. Доступ – ElenaDBA

Смежные вопросы