Групповые операции

Создание запроса, обеспечивающего вывод поля ФИО

1. Вкладка Создание – группа Другие – команда Конструктор запроса – выбрать таблицу туслСтуд – перенести все поля на строку Поле – сохранить запрос под именем зФИО.

2. Создание выражения:

· Установить курсор по строке Поле на колонку за полем Отчество ( оно пустое) – нажать правую кнопку мыши и выбрать команду Построить (или: вкладка Конструктор – группа Настройка запроса – кнопка Построитель). Откроется окно Построителя с выделенным именем запроса зФИО вверху левой частии с полями запроса в средней части окна построителя.

· Выделить поле Фамилия (в средней части окна Построителя) и нажать кнопку Вставить. В верхней части окна появится: [ Фамилия ]. Ввести символ &, используя кнопку в строке операторов окна Построителя, ввести с клавиатуры в кавычках символ пробела и опять знак &. Должно получиться следующее выражение:

[Фамилия]& «»&

· Сформировать инициалы имени: папка Функции (в левой части окна построителя) – Встроенные функции - категория Текстовые –выделить функцию LEFT – установить курсор в конец формируемого выражения в верхней части окна построителя (за знак &) и нажать клавишу Вставить. Будет вставлен шаблон этой функции, его надо отредактировать: щелчком выделить слово «stringexpr» – в левой части окна построителя открыть запрос зФИО – в средней части выделить поле Имя – нажать кнопку Вставить – удалить автоматически появляющееся слово Выражение, оставив знак; – выделить символ « – ввести вместо него цифру 1 – ввести за ним: & «.» & Должно быть выражение: LEFT([Имя];1)& «.»&

· Сформировать инициалы отчества аналогичным образом. Должно быть выражение:

LEFT ([Отчество]; 1) & «.»

3. Вернуться в окно конструктора запроса, нажав кнопку ОК в окне Построителя. Созданное выражение будет находиться в последнем поле запроса. Для полей Фамилия, Имя, Отчество снять флажки Вывод на экран, для вычисляемого поля он должен быть установлен. Для вычисляемого поля в конструкторе запроса автоматически сформировано имя Выражение. Его надо заменить на ФИО. Окно конструктора запроса зФИО должно иметь следующий вид:

4. Выполнить запрос.

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

Пример. Создать запрос, в котором для каждого студента будет подсчитано количество полученных им оценок в первом семестре, средний балл, а затем размер стипендии. Предположим, что стипендия равна 1100 руб. Повышенная стипендия (при оценках отлично) на 100% больше. Если средний балл меньше трех, то стипендия не начисляется.

Решение. Вкладка Создание – группа Другие – кнопка Конструктор запроса – добавить таблицы Студент, Группа, Успеваемость – закрыть окно Добавление таблиц – перенести поля: Номер группы, Фамилия, Оценка, Оценка ( еще раз ), Семестр. По строке Условие отбора для поля Номер группы ввести в квадратных скобках [номер группы], для поля Семестр цифру 1.

Далее. Щелкнуть на кнопке Итоги ( вкладка Конструктор – группа Показать или скрыть).В нижней части окна конструктора запроса п оявится строка Групповая операция со значением Группировка по всемполям.По полям Номер группы, Фамилия и Семестр оставить значение Группировка. По первому полю Оценка выбрать из списка функцию Count ( количество ), по второму – функцию AVG( среднее ). В следующем за полем Семестр пустом столбике выбрать из списка группировка строку Выражение, обязательно сохранить (!) запрос, например под именем згрупопер.

Щелкнуть правой кнопкой мыши по строке Поле в пустом столбце и выбрать команду Построить. Появится окно Построителя, в котором слева вверху будет открыт запрос згрупопер, в средней части которого будут выведены поля: номер группы, фамилия, COUNT-оценка, AVG- оценка, семестр. Построитель присвоил двум полям Оценка имена: COUNTоценка и AVG-оценка. Для того чтобы такое присвоение состоялось надо обязательно сохранить запрос после выполнения операции группировки до обращения к построителю. В противном случае поля сохранят свои имена.

С помощью построителя надо создать выражение. Выражение использует функцию IIF (айиф), которая находится в категории Управление. Функция IIF содержит: логическое условие; выражение, если значение истинно; выражение, если значение ложно. Если средняя цена =5, то стипендия – 2200; если средняя цена <3, то стипендия -0; в остальных случаях – 1100.

В окне Построителя (вверху) должно быть образовано следующее выражение: IIF([AVG-оценка]=5;2200; IIF([AVG-оценка]<3;0;1100)).

Рассмотрим подробнее как создать в Построителе это выражение:

· Папка ФункцииВстроенные функции – категория Управление – функция IIF – кнопка Вставить. В верхней части окна построителя появится шаблон этой функции

· Выделить в шаблоне слово «expr» - выделить в левой части имя запроса згрупопер– установить курсор на поле «AVG -оценка» - кнопка Вставить – добавить: =5 – слово Выражение удалить

· Выделить в шаблоне слово «truepart» и ввести вместо этого слова число 2200

· Выделить в шаблоне слово «falsepart» - папка ФункцииВстроенные функции – категория Управление – функция IIF – кнопка Вставить

· Выделить имя запроса вверху левой части – выделить слово «expr» - выбрать поле «AVG - оценка» - кнопка Вставить – добавить: <3 – удалить слово Выражение – вместо слова «truepart» ввести цифру 0 – вместо слова «falsepart» ввести число 1100

· Нажать кнопку ОК для возврата в окно конструктора запросов

Заменить появившееся имя поля Выражение 1: на Стипендия. Нажать кнопку ОК для возврата в окно конструктора запроса.

Далее, находясь в конструкторе запроса, следует заменить имена двух полей Оценка соответственно на Количество оценок и Средний балл: установить курсор на поле Оценка с функцией COUNT – на вкладке Конструктор в группе Показать или скрыть выбрать команду Страница свойств – в открывшемся окне по строке Подпись ввести Количество оценок. Аналогично для второго поля Оценка ввести подпись Средний балл.

Сохранить запрос под тем же именем.

Выполнить запрос.


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



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