Читайте также:
|
|
Запросы-обновления позволяют производить обновление некоторой хранимой информации, своевременность которой истекла на текущий момент.
Сначала создайте новый запрос выбора и введите критерии для выбора изменяемых записей. Только в том случае, если результат запроса отвечает заданным требованиям, следует преобразовать его в запрос замены. Для этого выберите команду «Запрос»®«Обновление». При этом будут выключены строки «Вывод на экран» и «Сортировка» в бланке запроса. Обе эти строки не нужны для запроса замены. Вместо них включается новая строка «Обновление». В эту строку следует ввести новые выражения для заменяемых записей. Обратите внимание, что тип данных выражения должен совпадать с типом данных поля исходной таблицы. Например, если вы хотите обновить записи поля «Summa» таблицы «Товары», значения которых вычислены и находятся в таблице «Сумма», то сформируйте запрос на обновление, как показано на рисунке 2.9.
ЗАДАНИЯ
1. Создайте запрос на выборку, в результате выполнения которого можно отобразить список всех продавцов с окладом в заданном диапазоне с переменными границами. Запрос назовите «01_Диапазон окладов».
2. Выберите всех поставщиков, создав запрос «02_Города поставщиков», проживающих в определенном городе, название которого не известно заранее.
3. Отсортируйте список товаров сначала по наименованию товара, а затем по цене продажи, сконструировав запрос «03_Сортировка товаров».
4.1 Создайте запрос на создание таблицы «Сумма», где, применив механизм группировки, вычислите значения суммы заказанных товаров по каждому заказу. Воспользуйтесь при этом только полем «Kod» таблицы «Заказы», и новым полем «Итого». Итоговые значения определяются как произведение значений полей «Kol» таблицы «Заказано» и полей «Cena_pr» таблицы «Товары». Назовите запрос «04\1_Сумма заказанных товаров»
4.2 Сконструируйте запрос на обновление поля «Summa» таблицы «Заказы», куда поместите вычисленные значения сумм по каждому заказу. Назовите его «04\2_Обновление сумм заказов»
5. Создайте запрос-выборку товаров, имеющихся на складе, причем поле «Nal» не должно отражаться на экране. Назовите его «05_Наличие товаров».
6. Создайте запрос-выборку товаров «06_Тип-склад» определенного типа в определенной упаковке имеющихся на складе.
7. Сконструируйте перекрестный запрос, заголовками строк которого являются наименования товаров и фирм, заголовками столбцов - вид фасовки товаров, подведите итоги, вычислив минимальное значение цены покупки товара (поле «Cena_p»). Пример выполнения запроса представлен на рисунке 2.10. Назовите его «07_Товары (перекрестный запрос)»
Чтобы написать необходимые запросы для подсчета заработной платы, нужно представить себе порядок выполняемых действий. Весь процесс расчета можно разбить на ряд этапов:
Этап 1. Подсчитать сумму оклада в зависимости от категории и стажа;
Этап 2. Подсчитать сумму начислений и сумму вычетов в данном конкретном месяце;
Этап 3. Подсчитать пенсионные отчисления;
вычислить сумму подоходного налога в зависимости от начисленной суммы, вычитая пенсионные отчисления;
Этап 4. Подсчитать сумму выдачи.
ЭТАП 1.
8 Чтобы правильно подсчитать значение оклада сотрудника сначала необходимо определить стаж работы сотрудника, для чего создайте запрос «08_Стаж продавцов» на добавление таблицы «Определение стажа». В формируемую таблицу добавьте поле «Kod» таблицы «Продавцы» и создайте новое поле «Стаж», в котором вычислите стаж сотрудника как разность между текущим годом и годом поступления на работу, используя функции Data() и Year().
9.1 Создайте таблицу «Показатели», в которой одно единственное поле «MRP» со значением 10930. Для подсчета оклада создайте запрос на обновление поля «Oklad» таблицы «Продавцы». В запрос включите таблицы «Определение стажа», «Продавцы», «Константы», «Показатели». Оклад вычисляется как произведение значений поля «Const» таблицы «Константы» на значения поля «MRP» таблицы «Показатели», то есть [Константы]![const]*[Показатели]![MRP]. Поскольку при определении константы необходимо учитывать, стаж и категорию сотрудника, то вторым полем проектируемого запроса будет поле «Стаж» таблицы «Определение стажа», а третьим поле «Cat» (категория) таблицы «Константы». Для второго и третьего полей укажите условия отбора: стаж, вычисленный в таблице «Определение стажа», должен входить в диапазон пороговых значений стажа таблицы «Константы», категория таблицы «Константы» должна совпадать с категорией таблицы «Продавцы». Запрос назовите «09\1_Подсчёт оклада».
9.2 Создайте запрос на добавление поля «Oklad» из таблицы «Продавцы» в таблицу «Начисления».
ЭТАП 2.
10 Так как на начало января суммы начислений и вычетов равны нулю, то в пустую таблицу нужно добавить записи, содержащие порядковые номера продавцов. Для этого создайте запрос на добавление кодов сотрудников из таблицы «Продавцы» в таблицу «10_Месяц_расчет».
11 Промежуточная таблица «Месяц_расчет» не должна содержать данных и перед каждым начислением зарплаты ее необходимо очистить от данных. Для этого воспользуйтесь запросом на удаление, который назовите «11_Очистка таблицы расчета».
12.1 Подсчитаем сумму премии продавцам, которая определяется как 1% от продаж, если сумма продаж за месяц больше 7000. Для этого разработайте запрос на добавление новой таблицы «Сумма1», при помощи которого определите сумму заказанных за конкретный месяц товаров. Назовите запрос «12\1_Запись суммы по месяцам». Бланк запроса представлен на рисунке 2.11.
12.2 Чтобы определить численное значение суммы премии, создайте запрос на обновление «12\2_Запись премии по месяцам». В бланк запроса включите таблицы «Начисления» и «Сумма1». Первым полем этого запроса сделайте обновляемое поле «Prem» таблицы «Начисления», где в строке «Обновление» запишите с помощью построителя формулу вычисления премии: итоговое значение суммы проданных за месяц товаров, вычисленное в таблице «Сумма1», умножается на коэффициент 0,01. Во втором поле запроса выберите только те записи поля «Итого» таблицы «Сумма1», значения которых больше 7000. Бланк запроса представлен на рисунке 2.12.
Теперь необходимо определить начисленную заработную плату за конкретный месяц. Для этого нужно подсчитать для каждого сотрудника суммы начислений и вычетов и добавить эти данные в таблицу «Месяц_расчет».
12.3 Создайте запрос на добавление, содержащий четыре поля: «Kod_prod», «Mes» (используется таблица «Начисления»), «Всего начислено», «Всего вычеты» (формируются с помощью построителя). Для того, чтобы запрос был универсальным и мог использоваться ежемесячно в поле «Mes» введите параметр, запрашивающий, за какой месяц производить расчет. Назовите запрос «12\3_всего начисления и вычеты»
ЭТАП 3.
13 Создайте запрос на обновление поля «Pens» в таблице «Месяц_расчет», который вычисляется как 10 процентов от оклада. (см. Рисунок 2.13) Назовите его «13_Обновление пенсионных».
ЭТАП 4.
14 Создайте запрос на обновление «14_Подоходный налог», обновить поле «Pod_nal» в таблице «Месяц_расчёт», вычисляемый из общей суммы начисления, вычитая пенсионный и МРП/10, находим 10 процентов от этой суммы. (см. Рисунок 2.14)
Рисунок 2.14
ЭТАП 5.
15 Создайте запрос на обновление поля «Itog» в таблице «Месяц_расчёт», с учетом вычетов: Всего вычтено, пенсионные отчисления, подоходный налог. Запрос назовите «15_К выдаче».
Контрольные вопросы
1. Что представляет собой запрос? Какие виды запросов существуют?
2. Чем отличаются между собой процессы создания запросов с помощью «Мастера запросов» и «Конструктора»?
3. Что такое запрос с параметром? Как он создается?
4. Как разработать запрос на создание таблицы? Чем результат этого запроса отличается от результата запросаөвыборки?
5. Как создать запрос на удаление?
6. Какие особенности имеет перекрестный запрос? Как его разработать?
7. Что происходит в результате выполнения запроса на обновление? Как его создать?
8. Для чего служит «Построитель выражений»?
9. Чем отличаются итоговые запросы от обычных?
Дата добавления: 2015-10-29; просмотров: 141 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Создание простых запросов с помощью Мастера. | | | Лабораторная работа №3 |