Как сделать запрос UNION в Access для объединения данных из нескольких таблиц и ТАКЖЕ исключить сопоставленные данные с таблицей с именем 'SignedOffClientList'? - PullRequest
0 голосов
/ 29 октября 2018

Union Query Image of SQL code

Таким образом, запрос UNION должен объединить все данные из таблиц, связанных с электронными таблицами Excel, а затем использовать их в качестве источника для второго запроса, который сработал. Но мне также нужно, чтобы данные, которые сопоставляются в другой таблице (называемой SignedOffClientList), были исключены из результатов запросов?

Я не знаю, как это сделать, и мои попытки выдают «Синтаксическая ошибка в предложении FROM» ... Кто-нибудь может дать совет? (Изображение доступно по ссылке)

ТЕКСТ кода:

SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [AssetFinance]

UNION


SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [Corporates]


UNION


SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [CreditConsult]

UNION


SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [FinancialMarkets]

UNION


SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [FixedIncome]

UNION


SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [ProjectFinance]

UNION


SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [RealEstate]

UNION


SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [Securitisation]

UNION SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [Treasury]

EXCEPT
SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
FROM [SignedOffClientList]


ORDER BY [F9];

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Вы можете заключить свой UNION в подзапрос, а затем использовать предложение NOT EXISTS, чтобы исключить значения, которые существуют во второй таблице:

SELECT * FROM
(

    SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
    FROM [AssetFinance]

    UNION


    SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
    FROM [Corporates]


    UNION


    SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
    FROM [CreditConsult]

    UNION


    SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
    FROM [FinancialMarkets]

    UNION


    SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
    FROM [FixedIncome]

    UNION


    SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
    FROM [ProjectFinance]

    UNION


    SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
    FROM [RealEstate]

    UNION


    SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
    FROM [Securitisation]

    UNION SELECT [F1], [F2], [F3], [F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13], [F14], [F15]
    FROM [Treasury]

) UnionResult
WHERE NOT EXISTS(SELECT 1 FROM SignedOffClientList s WHERE s.F1 = UnionResult.F1 AND s.F2 = UnionResult.F2)

Обратите внимание, что это проверяет на точное равенство. При работе со связанными таблицами Excel необходимо учитывать символы форматирования, если они есть.

0 голосов
/ 29 октября 2018

Просто создайте другой запрос, который использует Union Query в качестве источника данных. В конструкторе объедините поля с таблицей SignedOffClientList и вставьте фильтр в этот новый запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...