Создание перекрестного запроса при помощи мастера

Допустим, необходимо проанализировать размещение заказов у клиентов помесячно за 1998 год. Для такого анализа перекрестный запрос подходит как нельзя лучше. На примере создания этого запроса будет проиллюстрирована работа соответствующего мастера.

Прежде всего, необходимо создать вспомогательный запрос на выборку, содержащий все необходимые поля. Это нужно сделать, поскольку нужны поля из двух связанных таблиц, а мастер может предложить вам выбрать только одну таблицу (или запрос). Создайте новый запрос и откройте его в режиме конструктора. Добавьте в его макет таблиц Заказы и Заказано. Microsoft Access автоматически добавит постоянную связь между таблицами по полям КодЗаказа. В бланк запроса добавьте поле КодКлиента из таблицы Заказы. Для следующих двух полей введите такие определения: Месяц: Month([ДатаРазмещения]) и Стоимость:CCur([Заказано].[Цена]* [Количество] *(1-[Скидка])/100)*100. Теперь добавьте в бланк запроса поле ДатаРазмещения из таблицы Заказы, снимите для него флажок Вывод на экран и введите Условие отбораBetween #01.01.98# And #31.12.98#. Закройте получившийся запрос, сохранив его под каким-либо именем (Запрос 5). Вид запроса в режиме конструктораприведен на рис. 7.2.

Рис. 7.2. Вспомогательный запрос, отбирающий записи из таблицы Заказы и Заказано.

Теперь можно приступить к созданию перекрестного запроса. На вкладке Запросы нажмите кнопку Создать и из появившегося списка выберите пункт Перекрестный запрос. На экране появится первое окно мастера создания перекрестных запросов (см. рис. 7.3). Выберите значение Запросы для переключателя Показать, в списке запросов укажите имя созданного перед этим запроса на выборку (Запрос 5) и нажмите кнопку Далее.

Рис 7.3. Первое окно мастера перекрестных таблиц

Второе окно мастера (см. рис. 7.4) предоставляет возможность выбрать поля, значения которых будут использоваться в качестве заголовков строк (то есть, будут приведены в левой части запроса в режиме таблицы). Можно указать не более трех полей. Для нашего запроса необходимо выбрать в списке доступных полей поле КодКлиента и нажать кнопку со стрелкой вправо, после чего поле будет помещено в список выбранных полей. Нажмите кнопку Далее, чтобы перейти к третьему окну мастера.

Рис. 7.4. Второе окно мастера перекрестных таблиц

В третьем окне (см. рис. 7.5) из списка доступных на текущий момент полей необходимо выбрать поле, значения которого будут являться заголовками столбцов. Такое поле может быть выбрано только одно. В данном случае необходимо выбрать поле Месяц и нажать кнопку Далее.

Рис. 7.4. Третье окно мастера перекрестных таблиц

Четвертое окно мастера создания перекрестных запросов (см. рис. 7.5) позволяет задать необходимые вычисления над доступными полями, результаты которых будут помещены в столбцы, задаваемые трансформируемым полем (область данных). На этом шаге доступно только одно поле — Стоимость. Задайте для него функцию — Сумма (Sum) и нажмите кнопку Далее.

Рис. 7.5. Четвертое окно мастера перекрестных таблиц

Последнее окно мастера позволяет задать имя запроса, а также выбрать вариант поведения мастера на завершающей стадии проектирования — открыть запрос в режиме конструктора или в режиме таблицы. Можно, кроме того, указать, нужна ли вам справка по работе с перекрестной таблицей. Задайте необходимые опции и нажмите кнопку Готово. Получившийся запрос изображен на рис. 7.6.

Рис. 7.6. Перекрестный запрос, созданный при помощи мастера

Пояснения

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

б). В перекрестных запросах всегда используются групповые операции, и отключить их нельзя — соответствующая кнопка на панели инструментов и пункт меню недоступны.

в). В бланке перекрестных запросов, в отличие от обычных запросов на выборку, присутствует строка Перекрестная таблица. В этой строке указываются значения, задающие роль для полей, использующихся в запросе. Возможные значения следующие: Заголовки строк, Заголовки столбцов, Значение и (не отображается).

г). Во вспомогательном запросе на выборку использовалась одна из функций для работы с данными типа Дата/Время - функция Month.

д). Конструкции SQL-onepamopa.

В перекрестном запросе в инструкции SELECT, перечисляются поля, являющиеся Заголовками строк.

В инструкции PIVOT указывается поле, значения которого будут служить в качестве заголовков столбцов.

Инструкция TRANSFORM служит для указания поля, значения которого, после произведенной групповой операции (Sum, Count и т.д.), будут помещены справа от полей перечисленных в инструкции SELECT.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: