Microsoft Access Query - объединение двух запросов в один - PullRequest
0 голосов
/ 31 января 2019

Используя мастер запросов, я построил два разных запроса, выполняющих сходные функции, которые я пытаюсь объединить в один запрос.У меня есть две таблицы (одинаковой структуры), которые я сопоставляю, чтобы найти дубликаты:

  1. Запрос № 1 выглядит следующим образом (Включить ВСЕ записи из таблицы 1 и только те,записи из таблицы 2, где объединенные поля равны, применяются ко всем столбцам ниже):

    Match Table 1 Column 3  to Table 2 Column 3
    Match Table 1 Column 4  to Table 2 Column 4
    Match Table 1 Column 5  to Table 2 Column 5
    Match Table 1 Column 7  to Table 2 Column 7
    

    Если все эти столбцы из таблицы 1 совпадают с данными в таблице 2, он идентифицирует дубликаты (я приношув таблице 2 столбец 7, который покажет дубликаты, которые я ищу).

  2. Запрос № 2 выглядит следующим образом (включите ВСЕ записи из таблицы 1 и только те,записи из Таблицы 2, где объединенные поля равны, применяются ко всем столбцам ниже):

    Match Table 1 Column 3  to Table 2 Column 3
    Match Table 1 Column 4  to Table 2 Column 4
    Match Table 1 Column 5  to Table 2 Column 5
    Match Table 1 Column 8  to Table 2 Column 8
    

    Мой второй запрос имеет те же 3 столбца, за исключением того, что последний столбец отличается.

    Если все эти столбцы из Таблицы 1 совпадают с данными в Таблице 2, он идентифицирует дубликаты (я привожу в Таблице 2 столбец 7/8, в котором будут показаны искомые дубликаты).

Что я пытаюсьdo:

Добавьте оператор OR для запроса, чтобы отображать оба дубликата в совпадениях для столбцов 8 и столбцов 7. Например, если таблица 1, столбец 7 соответствует таблице 2, столбец 7 ИЛИ таблица 1, столбец 8 соответствует таблице 2В столбце 8 показаны дубликаты.

Требуется ли запрос UNION?

Вот запрос для одного из них:

SELECT TABLE1.COLUMN_3, TABLE1.COLUMN_4, TABLE1. COLUMN_7, 
       TABLE2.COLUMN_7, TABLE1.COLUMN_5
FROM TABLE1 
LEFT JOIN TABLE2 
  ON  (TABLE1.COLUMN_7 = TABLE2.COLUMN_7) 
  AND (TABLE1.COLUMN_3 = TABLE2.COLUMN_3) 
  AND (TABLE1.COLUMN_4 = TABLE2.COLUMN_4) 
  AND (TABLE1.COLUMN_5 = TABLE2.COLUMN_5);

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Создать запрос 3;добавить Q1 и Q2 - присоединиться к ним на F7.Это приведет ко всем совпадениям в этом поле.

Создать запрос 4;добавить Q1 и Q2 - присоединиться к ним на F8.Это приведет ко всем совпадениям в этом поле.

Теперь у вас есть 2 набора данных с этими совпадениями (вы называете дубликаты).Тогда решение о том, как представить / отобразить.Если они вам нужны в одном наборе записей - запишите их в одну общую временную таблицу.Но в противном случае вы можете легко представить их вместе как подотчеты / формы.

0 голосов
/ 31 января 2019

Данный SQL не будет работать из-за пробелов в именах таблиц и столбцов.
В этом примере эти пробелы исключены.

SELECT
     Table1.Column3 , Table2.Column3
    ,Table1.Column4 , Table2.Column4
    ,Table1.Column5 , Table2.Column5
    ,Table1.Column7 , Table2.Column7
    ,Table1.Column8 , Table2.Column8

From      Table1 
Left Join Table2  
On

(        Table1.Column3 = Table2.Column3
 AND     Table1.Column4 = Table2.Column4
 AND     Table1.Column5 = Table2.Column5
 AND  (  Table1.Column7 = Table2.Column7
      OR Table1.Column8 = Table2.Column8
      )
 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...