У меня есть два списка сотрудников:
List A:
StaffID Supervisor
====================
0001234 NULL
0001235 0001234
0001237 0001234
0001239 0001237
и
List B:
StaffID Supervisor
====================
0001234 NULL
0001235 0001234
0001238 0001235
0001239 0001235
И мне нужен следующий вывод:
StaffID SupervisorA SupervisorB
===================================
0001234 NULL NULL
0001235 0001234 0001234
0001237 0001234 NULL
0001238 NULL 0001235
0001239 0001237 0001235
Обратите внимание, что идентификаторы персонала из Списка A и Списка B были объединены в один неповторяющийся список, и что я объединил две детали супервизора, которые могут не совпадать между двумя списками.
Запрос не должен быть хорошим. У меня есть ~ 8000 записей в каждом списке, и я буду работать хорошо. Я рад сделать некоторые незначительные манипуляции с Excel впоследствии, если это необходимо.
Я хотел сделать полное объединение, но окно свойств конструктора запросов Access в соединении позволяет мне выбрать ALL из таблицы A и сопоставление из таблицы B, ALL из таблицы B и сопоставление из таблицы A или только те, которые совпадают в обоих A и Б.
Я уверен, что это очень просто сделать, но я очень редко использую MS Access.
У меня есть два запроса, которые не дают мне то, что я хочу. Я хотел объединить их в полное внешнее объединение, так как Access не дает мне выбора, но не уверен, как:
SELECT ListA.*, ListB.*
FROM ListA LEFT JOIN ListB ON ListA.[StaffID] = ListB.StaffID;
и
SELECT ListA.*, ListB.*
FROM ListB LEFT JOIN ListA ON ListB.[StaffID] = ListA.StaffID;
источник
Вы пытались разработать запрос в режиме SQL вместо использования конструктора?
Если вы используете Access 2003 / XP / 2000/97, взгляните на это: http://www.techonthenet.com/access/queries/view_sql.php
Если вы используете Access 2007/2010, вы можете сделать это, нажав стрелку на кнопке «Вид» слева от ленты. Затем нажмите SQL View.
источник
источник
источник