- •Задание 3. Запросы в ms access
- •1. Запросы
- •1.1. Типы запросов
- •2. Запросы на выборку
- •2.1. Создание простого запроса
- •2.2. Простые запросы с использованием Конструктора запросов
- •2.2.1. Перемещение в окне Конструктора запросов
- •2.2.2. Бланк запроса
- •2.2.3. Выбор поля
- •2.2.4. Изменение порядка расположения полей
- •2.2.5. Запуск запроса
- •2.2.6. Сохранение запроса
- •2.3. Вычисления в запросе
- •2.3.1. Типы выражений в Access
- •2.3.1.1. Операторы
- •Строковые операторы
- •Оператор конкатенации (&)
- •Оператор Like
- •Выражение Like шаблон
- •Логические операторы
- •Приоритет операторов
- •2.3.1.2. Функции
- •Функции преобразования типа
- •Функции даты и времени
- •Статистические функции sql
- •2.4. Выполнение запросов с использованием простейших процедур вычислений
- •2.5. Вычисляемые поля
- •2.5.1. Конструирование выражения в строке поля
- •[Фамилия]&" "&[Имя]
- •2.5.2. Использование Построителя выражений
- •Int(Now()-[Дата приема])
- •Int((Now()-[Дата приема])/360)
- •2.5.3. Свойства полей
- •2.6. Критерии выборки в запросе
- •2.7. Оператор Like и символы подстановки в запросах
- •2.8. Запросы с Итоговыми значениями
- •2.8.1. Групповые функции
- •Max ([Зарплата]) – Min ([Зарплата])
- •2.8.2. Выбор записей в группах
- •3. Параметрические запросы
- •4. Запросы к нескольким таблицам
- •6. Задания по разделу
- •7. Итоговые задания по разделу
Int(Now()-[Дата приема])
Для соблюдения порядка вычислений, используя кнопки скобки, заключите введенную разность поля и функции [Дата приема] – Now() в скобки. Кстати, скобки вы можете вставить просто с клавиатуры.
Для того, чтобы подсчитать количество полных лет, проработанных сотрудниками на предприятии, разделим нацело выражение в скобках на 360 (количество дней в году)
Int((Now()-[Дата приема])/360)
Щелкните на соответствующей кнопке и введите знак умножения или введите ее сами с клавиатуры.
В списке Имен полей таблицы «Сотрудники» выделите имя «Доплата» и введите его в поле ввода.
Последовательно введите знак умножения и величину поясного коэффициента (1,3).
Щелкните на кнопке «ОК» и созданное выражение будет перенесено в «Конструктор запросов».
Можно дать команду на выполнение запроса.
Для того, чтобы таблица, содержащая результаты запроса имела пристойный вид, необходимо задать свойства созданных полей.
2.5.3. Свойства полей
Откройте созданный запрос в режиме Конструктора.
Установите курсор мыши в поле «Выражение1» и щелкните правой кнопкой мыши.
В открывшемся контекстном меню выберите «Свойства»
В открывшемся диалоговом окне « «Свойства поля» введите:
В поле «Описание» текст, содержащий описание объекта, выводящегося в окне базы данных, а также описание отдельных полей таблицы или запроса. В вашем случае - это может быть текст: «Расчет премии».
В поле «Формат поля» выберите формат представления данных (в нашем примере выберем формат –«Денежный»).
В поле «Число десятичных знаков» укажите, сколько десятичных знаков. Должно содержаться в значении поля.
При необходимости введите маску ввода.
В поле «Подпись» укажите имя созданного поля (В нашем примере введите в это поле – «Премия»)
Нажмите на кнопку «Закрыть» диалогового окна для сохранения заданных свойств.
Наконец, все необходимые действия по созданию поля сделаны, и можно дать команду на выполнение запроса.
2.6. Критерии выборки в запросе
Вы научились создавать простые запросы, в которых выбираются практически все значения выбранных полей.
На практике, запросы выглядят значительно сложнее, хотя принцип создания запросов со сложными критериями отбора, после того как мы научились строить выражения, очень прост:
Критерии запроса записываются в строку «Условия отбора» в той колонке, имя которой используется при построении критерия.
В том случае, если при выполнении отбора вы намерены в качестве критерия использовать несколько имен полей, соединенных оператором «And» («И»), то выражения, содержащие критерии отбора должны располагаться в строке «Условия отбора».
В том случае, если выражения, содержащие критерии отбора, объединяются оператором «Or» («Или») то они должны быть записаны в строке «Или» соответствующей колонки.
Рассмотрим выше сказанное на примере предыдущего запроса.
Вы решили выплатить премию только тем сотрудникам, которые живут в городах «Красноярск» и «Ачинск» и проработали на фирме не менее 2-х лет.
Из имеющегося запроса «Расчет премии Запрос» создайте новый запрос, в котором будете начислять премии для заданных условий отбора. Для этого:
В Окне базы данных щелкните правой кнопкой мыши на запросе «Расчет премии Запрос».
Выберите команду «Копировать».
Щелкните правой кнопкой мыши в свободной части Окна базы данных.
Выберите команду «Вставить».
Укажите новое имя запроса – «Расчет премии Красноярцам и Ачинцам Запрос».
Щелкните на кнопке «ОК».
Щелкните на кнопке «Конструктор», для открытия диалогового окна Конструктор запросов.
Добавьте в запрос поле «Город».
Щелкните правой кнопкой в строке «Условия отбора» поля «Премия». В открывшемся контекстном меню выберите команду «Построить».
В поле ввода диалогового окна Построителя выражений введите выражение для отбора сотрудников проработавших на фирме не менее двух лет:
(Date()-[Дата приема])/360>=2
Закройте диалоговое окно Построителя выражения (перенесите созданное выражение в строку «Условия отбора»).
В строку «Условия отбора» поля «Город» введите условие отбора сотрудников, живущих в г. Красноярске - Красноярск, а в строку «Или» - сотрудников живущих в г. Ачинске – Ачинск. Названия городов не надо помещать в кавычки, это будет сделано автоматически.
В результате выполненных действий диалоговое окно Конструктора запросов примет вид, подобный, изображенному на рисунке.
Закройте запрос.