Использование сводных таблиц в Access 2007 с большими базами данных (~ 200 МБ) - PullRequest
1 голос
/ 14 января 2010

Я пытаюсь использовать Access, чтобы помочь мне обобщить научные данные - температуру и влажность за последние 30 лет или около того.

Базы данных довольно большие - примерно 200 мегабайт каждая.

Для меня идеалом было бы использование сводной таблицы для выполнения сводок для меня, но я сталкиваюсь с проблемой, заключающейся в том, что каждый раз, когда я пытаюсь изменить один из параметров сводной таблицы, то есть строку, столбец, фильтр или данные установить, он тратит около минуты на обдумывание и иногда вылетает.

Я бы хотел иметь возможность точно указать, что я хочу, в сводной таблице, и ТОГДА сказать, чтобы он выполнял обработку, а не пытался обрабатывать после каждого шага.

Любая помощь будет высоко ценится.

Thankyou,

Alex

1 Ответ

2 голосов
/ 04 июня 2010

Несколько соображений о ваших данных:

  1. Индексируются ли таблицы? Индексы ускоряют выполнение запроса
  2. Если есть несколько таблиц, вы создали соответствующие отношения?

База данных 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 должны быть проиндексированы.

Если вы хотите суммировать больше полей, создайте кросс-таблицу для каждого поля.

Надеюсь, это поможет вам.

...