MSAccess — запуск запроса, который выполняет подзапрос / make-table

#mysql #database #ms-access

#mysql #База данных #ms-access

Вопрос:

ЦЕЛЬ

Создайте отчет, который извлекает данные из нескольких таблиц (например, инвентаризация, детали товара, заказы на поставку).

ПРИМЕЧАНИЕ: таблицы инвентаризации, сведений об изделиях, заказов на поставку и информации о клиентах связаны с внешней системой ERP. Эти таблицы являются массивными и обновляются ежечасно.

ПОДХОД

  1. Из-за огромного размера каждой таблицы создавайте запросы меньшего размера («Make table» в Access), которые извлекают соответствующую табличную информацию (например, «InventoryQuery» извлекает «ИДЕНТИФИКАТОР ЭЛЕМЕНТА» и «ОПИСАНИЕ ЭЛЕМЕНТА» — отрицая остальные 99 столбцов в исходной таблице ERP). Повторите этот процесс для деталей товара, заказов на поставку и сведений о клиентах.
  2. Создайте другой запрос («ГЛАВНЫЙ ЗАПРОС«, который объединяет все недавно консолидированные таблицы для создания отчета.

ПРОБЛЕМА (Ы) / ВОПРОС (Ы)

  • Поправьте меня, если я ошибаюсь, но я считаю, что запросы «Make Table» не обновляются постоянно. В результате ОСНОВНОЙ ЗАПРОС не будет обновляться. Как я могу изменить свой ОСНОВНОЙ ЗАПРОС, чтобы выполнять запросы Make Table в режиме реального времени?

РЕДАКТИРОВАТЬ: я пытался создать ОСНОВНОЙ ЗАПРОС из подзапросов, но из-за размера связанных таблиц процесс занимает очень много времени (> 10 минут)

Комментарии:

1. Вы не можете. Вы должны выполнить «Создание таблиц», чтобы настроить сводные / узкие таблицы, затем использовать запросы «INSERT» для добавления к ним новых почасовых данных из ваших таблиц ERP. Вам нужно будет запускать эти запросы INSERT всякий раз, когда вы хотите обновить данные в таблицах, которые были сгенерированы из ваших первоначальных таблиц make. Способ, которым вы хотите это сделать, будет на 100% идентичен простому использованию подзапросов в ваших основных таблицах ERP, которые, как вы уже определили, слишком громоздки.

2. Нет ничего плохого в использовании функциональности отчетов Access, я слышал об этом хорошие вещи. И я согласен с комментарием, что вам нужно много промежуточных таблиц, а не монолитный запрос с подзапросами. Однако я бы поставил под сомнение решение о создании / обновлении ваших промежуточных таблиц с использованием функций Access, например. Хранимые процедуры Access могут выполнять только один оператор SQL и будут проблемой, если вам нужно удалить / создать таблицу перед созданием таблицы / вставкой. Посмотрите, чтобы создать промежуточные таблицы / данные на стороне сервера или, возможно, другой экземпляр mysql между сервером и Access.