Если я выполню следующий запрос в Access 2016, я получу результат 0:
SELECT count(*) FROM EQUIPMENT_OPERATING_HOURS WHERE GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}'
Если я 'И' с точно таким же фильтром, я получаю результат 1 (поверьте мне, я действительно выполнил тот же самый запрос, как показано ниже):
SELECT count(*) FROM EQUIPMENT_OPERATING_HOURS WHERE GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}' AND GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}'
Если я сейчас запусту следующее, я получу результат 0 снова
SELECT count(*) FROM EQUIPMENT_OPERATING_HOURS WHERE GUID_EQUIPMENT = '{001C6C0B-73D1-78C4-B4D1-A14E2EA9CA1B}' AND 1=1
Я сделал "сжатие и ремонт" своей базы данных, но это не помогает. Я даже пытался создать новый файл с нуля на случай, если предыдущий файл все еще был поврежден, несмотря на компактность и исправление, но это тоже не помогает.
Если я установлю ограничение со ссылочной целостностью между таблицей EQUIPMENT_OPERATING_HOURS и таблицей EQUIPMENT, первый запрос вернет ожидаемый результат 1. Если я удаляю ограничение или только устанавливаю отношение без ссылочной целостности, я снова получаю 0. (обратите внимание, что это никоим образом не должно влиять на запрос, так как таблица EQUIPMENT даже не является его частью)
Я подозреваю, что проблема в движке Jet, так как я получаю то же самое поведение либо в программе Access, либо при запросе с использованием C++ ADO.
для информации, я использую Access 2016 и MSJET 4.00.9801.4