Проверка на наличие дубликатов с использованием Access SQL - PullRequest
0 голосов
/ 14 декабря 2018

В настоящее время я работаю над формой доступа, которая обрабатывает проверку дубликатов между двумя таблицами.

Сценарии, которые я ищу для возврата, следующие:

-Дубликаты в TempTableExcelFile -Duplicatesв tblPeople -Дублирует две таблицы.

Благодаря исследованиям я понимаю, что мне нужно использовать соединение, но, похоже, я не могу заставить его работать.

Мой текущий кодовый запрос выглядит так:следует:

SELECT * FROM (
    SELECT count(code) AS [Number of Duplicates]
           code AS [Code Duplicated],
           "Existing Database" AS [Duplicate Location] 
    from tblpeople 
    group by code
    having count(code) > 1 
    UNION ALL
    select count(code) AS [Number of Duplicates],
           code AS [Code Duplicated], 
           "Imported Data"  AS [Duplicate Location] 
    from TempTableExcelFile 
    group by code
    having count(code) > 1
)

Итак, насколько я понимаю, в настоящее время это даст мне дубликаты, содержащиеся в соответствующих таблицах.

Мое понимание того, как я присоединюсь к таблицам, следующее:

SELECT count(code) AS [Number of Duplicates],
       code AS [Code Duplicated],
       "Existing Database" AS [Duplicate Location]
FROM tblPeople        
    JOIN TempTableExcelFile 
    ON code = code
GROUP BY code
having count(code) > 1 

Но, несмотря на многочисленные усилия, я не могу заставить его срабатывать в том случае, если у нас есть код TempTableExcelFile, дублированный в tblPeople.Мне больно известно, что это, скорее всего, связано с отсутствием понимания с моей стороны, поэтому любая помощь в этом вопросе будет признательна.

Если вы отправите решение, пожалуйста, сделайте все возможное, чтобы объяснить, куда я пошелнеправильно, и предложить темы, которые я могу исследовать, чтобы углубить мое понимание.

Спасибо,

Дан

PS, я ценю, что соглашение об именах здесь несколько нарушено, я использую существующиетаблицы, созданные моим предшественником.

1 Ответ

0 голосов
/ 14 декабря 2018

Используйте UNION ALL, чтобы превратить 2 таблицы в 1 "таблицу", а затем сосчитать из нее

SELECT count(*), code FROM (
    SELECT code
    from tblpeople  
    UNION ALL
    select code
    from TempTableExcelFile
) TableAndTemp
    group by code
    having count(code) > 1

В качестве альтернативы выберите все коды из временной таблицы, которые уже существуют в tblpeople

SELECT DISTINCT code
from TempTableExcelFile
WHERE code in (SELECT Code from tblpeople)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...