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)
Идеи?
Спасибо!