Несколько соображений о ваших данных:
- Индексируются ли таблицы? Индексы ускоряют выполнение запроса
- Если есть несколько таблиц, вы создали соответствующие отношения?
База данных 200 МБ не должна быть трудной для обработки с помощью Access.
Теперь о вашей проблеме: используйте кросс-таблицы.
Пример:
Если ваша таблица (tblCityTemp) имеет следующие данные
city | obsDate | temp
========================
MTY | 01/01/2010 | 25
MTY | 01/02/2010 | 28
MTY | 01/03/2010 | 30
MX | 01/01/2010 | 15
MX | 01/02/2010 | 17
Вы можете использовать следующий запрос:
TRANSFORM Avg(temp) AS avgTemp
SELECT obsDate
FROM tblCityTemp
GROUP BY obsDate
PIVOT city;
Вывод:
obsDate | MTY | MX
========================
01/01/2010 | 25 | 15
01/02/2010 | 28 | 17
01/03/2010 | 30 |
Поля city
и obsDate
должны быть проиндексированы.
Если вы хотите суммировать больше полей, создайте кросс-таблицу для каждого поля.
Надеюсь, это поможет вам.