Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по курсовой для МСФ.doc
Скачиваний:
2
Добавлен:
08.09.2019
Размер:
496 Кб
Скачать
☆

2.6.4. Создание перекрёстного запроса

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

В этом случае надо будет создать так называемый перекрестный запрос.

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

Таким образом, при создании перекрестного запроса необходимо указать:

  • откуда брать заголовки строк;

  • откуда брать заголовки столбцов;

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

Перекрестный запрос создаётся следующим образом.

  1. Сначала как обычно щелкнуть по объекту «Запросы», щелкнуть по кнопке «Создать», выделить строчку «Конструктор» и ОК.

  2. После этого надо добавить те таблицы, откуда будут браться названия строк, столбцов и данные. В нашем случае надо добавить все таблицы.

Таблица 1. Перекрестная таблица

Продукт

Клиент

Пастила фруктовая

Торт «Птичье молоко»

Конфеты «Южная ночь»

Клуб «Орфей»

10,4

37

Ресторан «Барракуда»

56,5

28,5

Ресторан «Максим»

45

37,8

  1. В панели инструментов есть кнопка «Тип запроса» и сразу справа от неё маленькая кнопочка с треугольником, нажав на которую надо выбрать из списка «Перекрестный». После этого в макете запроса должна появится строчка «Перекрестная таблица».

  2. В первом столбце макета указывается откуда брать заголовки строк, причем в строке «Перекрестная таблица» надо указать, что это заголовки строк (щелкнуть в этой строке и выбрать из списка). В нашем случае заголовки строк это наименование клиента, поэтому надо выбрать таблицу «Клиенты», поле – «наименование», групповая операция - группировка.

  3. Аналогично во втором столбце указывается, откуда брать заголовки столбцов. Нам надо выбрать таблицу «Продукты», поле – «Название», групповая операция – группировка, перекрестная таблица – заголовки столбцов.

  4. Ну а в третьем столбце надо указать, откуда брать данные и что с ними делать. Что делать с данными указывается следующим образом. Сначала в строке «Перекрестная таблица» выбирается из списка «Значение», а затем в строке «Групповая операция» выбирается соответствующая операция. В нашем случае имя таблицы – «Заказы», поле – «Количество», групповая операция - Sum, перекрестная таблица – «Значение».

  5. Закрыть макет подтвердив сохранение и назвав запрос «Кто что и сколько».

  6. Открыть запрос «Кто что и сколько» и убедиться, что он работает.

2.6.5. Создание запроса на обновление данных

Запрос на обновление используется для обновления данных в таблицах. Например, если цена товара изменилась, в таблицу «Товары» необходимо внести новые данные.

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

Пусть мы хотим обновить цену товара «Пастила фруктовая» на новое значение, равное 35. Сначала в запрос надо включить поля «цена» и «название», причём условие отбора для поля «название» должно содержать название продукта «Пастила фруктовая» как показано на рисунке.

Затем, не выходя из конструктора, надо открыть список «Тип запроса» в панели инструментов и выбрать из этого списка строчку «Обновление». После этого в макете запроса появится строка «обновление» в которой и надо указать новое значение, как показано на следующем рисунке.

После этого надо закрыть макет запроса, подтвердив сохранение и дав ему имя, например, такое «Изменение цены Пастилы фруктовой».

Этот запрос можно усовершенствовать скомбинировав его с параметрическим запросом. Если вместо конкретного значения цены поставить в квадратных скобках поясняющий текст, например, «Новая цена», тогда при выполнении этого запроса сначала будет запрошено новое значение цены. Аналогичным образом можно использовать и все другие возможности при создании запросов.