Если я выполню следующий запрос в 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

0