У меня есть 2 стола, Основная и Платежи. Main - это таблица транзакций, Payments - это таблица, в которой транзакции оплачивают другие транзакции.
Main имеет множество полей, таких как Invo, InvoDate и Amount.
Payments очень просто; в нем есть только PayInvo и DueInvo. [и ПК]
Я должен выяснить, какой из тех, что все еще ожидали оплаты, к концу 2019 года. Мой подход был следующим. [Main.Ac1 - это счет. Вся кредиторская задолженность находится между 2000 и 2999]
SELECT * FROM Main
WHERE InvoDate BETWEEN #1/1/2019# AND #12/31/2019#
AND Main.Ac1 BETWEEN 2000 AND 2999
AND NOT EXISTS
(
SELECT * FROM
Payments INNER JOIN Main ON Payments.PayInvo = Main.Invo
WHERE Main.InvoDate BETWEEN #1/1/2019# AND #12/31/2019#
);
Я ожидал, что он вернет ТОЛЬКО список транзакций, в которых Main.Ac1 МЕЖДУ 2000 И 2999, а также где соответствующий платеж НЕ был датирован 2019 годом, но он ничего не возвращает.