MS Access - состояние внешнего соединения не работает

Я работаю с запросом, который делает простое внешнее соединение на 2 таблицы. Первоначально объединение закодировано:

FROM [T1]
LEFT JOIN [T2] 
ON   [T1].[Bank Account #] = [T2].Account)
AND [T1].[Payment Reference] = [T2].[Reference #]

Достаточно просто. До тех пор, пока "Справочные" номера не начали перекрываться. Самое простое решение - кодировать соединение ТОЛЬКО тогда, когда T1."payment dt" is <= T2."cashed date"

У меня есть ссылка № 222456 с "датой обналичивания" от 01.01.2011. У меня есть новая строка с 222456 (разные типы и номера теперь перекрываются. Тип недоступен для сопоставления) с датой платежа 01.01.2016

Чтобы усложнить ситуацию, поле даты проверки T1 - это текст, а T2 - дата / время.

Если я добавлю эту строку:

и (Формат (cDate([T1].[Дата платежа]), "ГГГГММДД") 

Это отбрасывает ряд T1 в целом.

Я проверяю условие в select, и оно выглядит так, как должно.

Где это условие ИСТИНА - я получаю подходящие данные Т2

Там, где это условие ЛОЖЬ - и НИКАКОЙ записи T2 не существует - я получаю только T1 rec.

Если это условие ЛОЖЬ - но существует существующая строка T2, в которой совпадают первые 2 поля (но проверка даты не удалась), - тогда я вообще не получаю НИКАКУЮ строку.

Мне нужно T1, чтобы вернуться, как будто соответствие T2 не найдено (что должно указывать ON)

Идеи?

Спасибо!

0 ответов

Другие вопросы по тегам