Ваш запрос должен выглядеть следующим образом:
SELECT LeftAlias.PartNumber AS PartNumber,
IIF(ISNULL(RightAlias.Col1), LeftAlias.Col1, RightAlias.Col1) AS Col1,
IIF(ISNULL(RightAlias.Col2), LeftAlias.Col2, RightAlias.Col2) AS Col2,
LeftAlias.Col3
INTO TableA FROM
(SELECT PartNumber, Col1, Col2, Col3 FROM TableA IN 'LeftFile.mdb') AS LeftAlias
LEFT JOIN
(SELECT PartNumber, Col1, Col2 FROM TableA IN 'RightFile.mdb') AS RightAlias
ON LeftAlias.PartNumber=RightAlias.PartNumber
ORDER BY LeftAlias.PartNumber;
IIF Функция оценивает первый параметр как выражение и возвращает второй параметр, если выражение истинно, и третий параметр, есливыражение ложное. ISNULL возвращает значение true или false в зависимости от того, передано ли значение параметра null
или нет.
Обратите внимание, что при использовании Access 2007 или более поздней версии вы можете сократить эти строки:
IIF(ISNULL(RightAlias.Col1), LeftAlias.Col1, RightAlias.Col1) AS Col1,
IIF(ISNULL(RightAlias.Col2), LeftAlias.Col2, RightAlias.Col2) AS Col2,
С функцией Nz :
Nz(RightAlias.Col1, LeftAlias.Col1) AS Col1,
Nz(RightAlias.Col2, LeftAlias.Col2) AS Col2,