- •Создание и назначение запроса
- •Бланк запроса по образцу
- •Поля бланка запроса
- •Использование в условии отбора выражений с именами полей
- •Использование имен полей различных таблиц в условии отбора
- •Создание вычисляемых полей в запросах
- •Создание вычисляемого поля
- •Использование построителя выражений
- •Использование групповых операций в запросах Назначение групповых операций
- •Запрос с функцией Count
- •Конструирование запроса на создание таблицы
- •Упражнение
- •Использование выражений в запросе на обновление
- •Конструирование перекрестного запроса
- •Решение задач на основе нескольких запросов
- •Построение запроса на основе другого запроса
- •Упражнения
- •Решение задачи, требующей выполнения нескольких запросов и сохранения промежуточных результатов
- •Контрольные вопросы
Конструирование запроса на создание таблицы
Запрос на создание таблицы используется для сохранения результата запроса. Этот вид запроса основан на запросе на выборку, но, в отличие от него, сохраняет таблицу с результатами запроса.
Необходимость в сохранении результатов запроса возникает, например, когда невозможно построить запрос непосредственно на другом запросе. К этому случаю относится, в частности, построение запроса на обновление полей на основе запроса с операцией группировки.
Сформируем запрос на создание таблицы на примере ранее полученного запроса на выборку с групповыми вычислениями Число студентов в группах (см. рис. 33-35).
В области навигации вызовем названный запрос в режиме конструктора запросов. Преобразуем этот запрос в запрос на создание таблицы, выбрав тип запроса на панели конструктора Создание таблицы. В окне Создание таблицы введем имя создаваемой таблицы "Число студентов" (рисунок 40).
Рисунок 40 - Определение имени таблицы, создаваемой в запросе
Для того, чтобы просмотреть, какие записи будут помещены в новую таблицу, щелкните по кнопке панели инструментов Выполнить. Выполните запрос, чтобы таблица ЧИСЛО СТУДЕНТОВ была сохранена в базе данных. Теперь эту таблицу можно увидеть в списке таблиц окна БД.
Упражнение. Преобразуйте запрос на выборку Средний проходной балл группы (см. рис. 36, 7.45) в запрос на создание таблицы, а создаваемую таблицу назовите “СРБАЛЛ”.
Конструирование запроса на обновление
Обновление полей значениями, рассчитанными с использованием групповых операций
Рассмотрим технологию создания запроса на обновление на примере обновления поля КОЛ (количество студентов группы в таблице ГРУППА).
Количество студентов в группах ранее было подсчитано в запросе на выборку Число студентов в группах (см. рис. 33-35) с использованием статистической функции Count. Запрос на обновление непосредственно на таком запросе построить нельзя. Поэтому используем для обновления не сам запрос, а таблицу ЧИСЛО СТУДЕНТОВ, полученную по запросу на создание таблицы в предыдущем пункте.
Для формирования запроса на обновление сначала создадим запрос на выбор- ку на основе двух таблиц: обновляемой таблицы ГРУППА и таблицы ЧИСЛО СТУДЕНТОВ, содержащей данные для обновления. Заметим, что в подсхеме данных запроса автоматически устанавливается связь этих таблиц по полю с именем НГ. Для преобразования запроса на выборку в запрос на обновление (рисунок 41) выберем на панели конструктора тип запроса Обновление.
Рисунок 41 - Запрос на обновление таблицы ГРУППА
Заполним бланк запроса. Перетащим обновляемое поле КОЛ из списка таблицы ГРУППА. В строке Обновление введем имя поля "Count_HC" (таблицы ЧИСЛО СТУДЕНТОВ), из которого выбираются значения для обновления. Имя поля вводится в квадратных скобках.
Запрос можно выполнить, не выходя из режима конструктора. Содержимое обновляемого поля КОЛ можно просмотреть в режиме таблицы до и после выполнения запроса. Для последующего использования подготовленного запроса сохраним его под именем "Обновление ГРУППА_КОЛ".