Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Построение запроса с группированием записей и использованием статических функций




 

Задача №7. Выдать список сотрудников и количество детей каждого сотрудника.

Эта задача может быть решена на основе запроса Личная_Дети подсчетом записей, имеющих одинаковые значения в поле ФИО. Для подсчета записей надо сгруппировать записи по полю ФИО и создать новое поле, в которое будет помещен результат подсчета.

Порядок работы:

Ø В окне базы данных для объекта Запросы выберите Создать, затем Конструктор.

Ø Добавьте запрос Личная_Дети в окно конструктора. Нажмите кнопки Добавить, Закрыть.

Ø В бланке запросов в строке Поле выберите ФИО.

Ø Щелкните правой кнопкой мыши на поле ФИО и выберите Групповые операции. В результате появится строка Групповые операции и слово Группировка для поля ФИО. Это означает, что будет выполняться группирование записей, имеющих одинаковые значения в Поле ФИО. Количество детей сотрудника равно количеству повторений его фамилии в таблице.

Ø В строке Сортировка для поля ФИО откройте список и выберите режим сортировки По возрастанию.

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

Ø Щелкните правой кнопкой мыши на втором столбце и выберите Групповые операции, а затем откройте список Группировка и выберите статическую функцию COUNT – подсчет количества записей в группе.

Ø Задайте альтернативное имя для второго поля ФИО. Для этого щелкните правой кнопкой на этом поле и выберите пункт Свойства. Откроется диалоговое окно Свойства поля (рис.17). Щелкните в строке Подпись и нажмите комбинацию клавиш SHIFT+F2 для расширения области ввода (рис.18). Введите текст Количество детей, нажмите кнопку ОК. Закройте окно Свойства поля.

Рис.17

 

Рис.18

 

Ø Сохраните запрос под именем Количество детей (Файл ® Сохранить как).

Ø Щелкните кнопку Запуск на панели инструментов. Результат на рис.19

Рис.19

Задача №8. Выдать таблицу текущих назначений сотрудников.

Таблица РАБОТА содержит записи о всех перемещениях сотрудника. Последнее назначение сотрудника определяется самой поздней датой в поле ДатаРаб в группе записей, относящихся к одному сотруднику. Таким образом, чтобы решить поставленную задачу, надо сделать группировку по полю КодСотр, сортировать записи в каждой группе по возрастанию по полю ДатаРаб и выбрать последнюю запись из каждой группы.

Для создания запроса потребуется таблица ЛИЧНАЯ, РАБОТА и ПОДРАЗДЕЛЕНИЯ.

Порядок работы:

Ø В окне базы данных для объекта Запросы нажмите кнопку Создать®Конструктор.

Ø В окно Конструктора добавьте таблицы ЛИЧНАЯ, РАБОТА и ПОДРАЗДЕЛЕНИЯ.

Ø В бланк запросов строку Поля перетащите следующие поля: из таблицы ЛИЧНАЯКодСотр, ФИО, из таблицы РАБОТАДатаРаб, Должность, Оклад, из таблицы ПОДРАЗДЕЛЕНИЯНаименПолн.

Ø Для поля КодСотр снимите флажок в строке Вывод на экран.

Ø Задайте режим группировки из пункта меню Вид®Групповые операции.

Ø Для поля ФИО и ДатаРаб задайте сортировку по возрастанию.

Ø Для полей ДатаРаб, Должность, Оклад, НаименПолн в строке Групповая операция из списка выберите статистическую операцию LAST (последний), которая означает выбор последнего значения из группы (рис.20).

 

Рис. 20

Ø Для поля Оклад в строке Условие отбора задайте >0 (больше нуля) – это означает, что уволенных в запрос не включать (в таблице РАБОТА в записи уволенного сотрудника в поле Оклад задается нулевое значение).

Ø Проверьте работу запроса, нажав кнопку Вид на панели инструментов и выбрав Режим таблицы.

Ø Если запрос работает правильно, сохраните его с именем Работа_текущая. Результат показан на рис.21.

Рис.21

Задача №9. Самостоятельно создайте запрос Работа_Текушая1 по таблицам ЛИЧНАЯ (ФИО - сортировка по возрастанию), РАБОТА (ДатаРаб, Должность, Оклад, Текущий), ПОДРАЗДЕЛЕНИЕ (НаименПолн). Для этого нужно выбрать строки, в которых значение поля ТекущийИстина, а значение поля ОкладНе нуль (рис.22).

Рис.22. Вид Конструктора запроса Работа_Текущая1

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...