Если почти все мастера запросов достаточно последовательны и интуитивно понятны, то мастер Перекрестный запрос (Grosstab Query Wizard, Grosstab – сокращение от gross tabulation – перекрестный) требует хотя бы краткого обсуждения. Запросы этого рода предназначены для анализа информации, основанного на двух и более полях из одной или более таблиц. Например, вам хочется узнать, что предпочитают заказывать клиенты. Вас интересует, какие товары, и в каком количестве они заказывают. Значит, данные будут просматриваться и по клиентам и по товарам.
Рис. 5.13. Перекрестный запрос
К сожалению, мастер перекрестных запросов использует поля только из одной таблицы или запроса; связанные таблицы ему недоступны. Чтобы обойти это ограничение, придется сначала создать обычный запрос по нескольким таблицам. Итак, давайте создадим в конструкторе запрос с полем Код клиента из таблицы Клиенты, Количество1 из таблицы Сведения заказов и Изделие из таблицы Склад. Окно запроса будет включать также и таблицу Заказы, так как она связывает остальные таблицы. Этот простой запрос предоставит нам список товаров и их количество во всех заказах.
После того как вы создадите и сохраните этот запрос – назовите его как-нибудь так:Для перекрестного запроса, начните создание еще одного, выбрав мастер Перекрестный запрос. В первом окне мастер просит указать запрос или таблицу, по которой вы хотите построить перекрестный запрос. Если в списке перечислены таблицы, то выберите в группе Показать позицию Запросы (Queries), чтобы увидеть список запросов базы данных, и щелкните на запросе, созданном вами на первом шаге, а затем щелкните на кнопке Далее.
Во втором окне укажите поле, которое будет использоваться для заголовков строк. Если вы проводите анализ заказов клиентов, дважды щелкните на поле Код клиента и щелкните на кнопке Далее. В следующем окне мастер запрашивает поле для заголовков столбцов. В нашем примере в качестве второго измерения при анализе используется поле Изделие.
В следующем окне мастеру надо указать поле, по которому производятся вычисления, и характер вычислений. По умолчанию установлено вычисление среднего значения. Наш пример требует суммарного значения, поэтому в списке функций мы выберем Sum (сумма) и убедимся, что установлен флажок Да (Yes, include summary rows), расположенный под текстом Вычислить итоговое значение для каждой строки.
Последнее окно мастера – старое знакомое стандартное окно. В нем от вас требуется придумать запросу имя (назовем его Товары)и сообщить, желаете ли вы продолжить разработку запроса или просмотреть его результаты.
На рис. 5.14 приведен перекрестный запрос в режиме конструктора. Как вы видите, отличие перекрестного запроса от того, что мы делали чуть раньше, заключается в дополнительной строке Перекрестная таблица (Grosstab).
Раскройте в ней список и выберите способ использования данного поля в запросе. На выбор предлагаются следующие значения: Заголовки строк (Row heading), Заголовки столбцов (Columm heading), Значение (Value) и (не отображается) (Not shown). Нам необходимы, по крайней мере, одно поле заголовков строк, одно – заголовков столбцов и одно – значений. Выбор значения (не отображается) используется для тех полей, которые не включаются в выборку, но по которым производится сортировка или задаются условия отбора. Поля заголовков строк и столбцов должны участвовать в группировке, а для поля значения должен использоваться математический оператор.
Рис. 5.14. Перекрестный запрос – особый тип запроса с группировкой данных