Примечание: эта книга довольно старая (опубликована в 2000 году) и имеет отношение к Jet Engine. Я полагаю, что в новых версиях Access, использующих ACE, все может немного отличаться, хотя у меня нет источника, чтобы это подтвердить.

я есть запрос MS Access, который основан на связанной таблице ODBC (Oracle).

Я устраняю проблемы с низкой производительностью запроса здесь:Доступ не правильно переводитTOP предикат для ODBC / Oracle SQL.

SELECT ri.*
FROM user1_road_insp AS ri
WHERE ri.insp_id = (
                    select 
                        top 1 ri2.insp_id   
                    from 
                        user1_road_insp ri2 
                    where 
                        ri2.road_id = ri.road_id 
                        and year(insp_date) between  [Enter a START year:] and [Enter a END year:]
                    order by 
                        ri2.insp_date desc, 
                        ri2.length desc,
                        ri2.insp_id
                   );

В документации сказано:

Когда вы обнаружите проблему, вы можете попытаться решить ее, изменив локальный запрос. Это часто трудно сделать успешно, но вы можете добавить критерии, которые отправляются на сервер, уменьшая количество строк, извлекаемых для локальной обработки. Во многих случаях вы обнаружите, что, несмотря на все ваши усилия, Office Access по-прежнему извлекает некоторые целые таблицы без необходимости и выполняет окончательную обработку запросов локально.

Однако мне пришло в голову, что я не совсем понимаю, какой SQL я должен писать, чтобы сделать и Access, и ODBC / Oracle счастливыми.

Должен ли я писать какой-тоуниверсальный SQL что Access может понять в локальном запросеА ТАКЖЕ что можно легко перевести на ODBC / Oracle SQL? Является ли универсальный SQL реальной вещью?

Ответы на вопрос(2)

Ваш ответ на вопрос