Печатать эту главуПечатать эту главу

Лабораторная работа № 7. Основы работы в СУБД Microsoft Access. Создание и использование запросов.

2. «СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ»

2.7. ЗАДАНИЕ 15. Построение сложных запросов с условиями отбора для вычисляемых полей

В запросе Стипендия II курса размер стипендии задавался одинаковым для всех категорий студентов. Во многих ВУЗах практикуется дифференцированная стипендия для разных категорий студентов. Допустим, что размер базовой стипендии равен N руб. Для отличников стипендия увеличивается вдвое, а для тех, кто получает стипендию, имея тройки, уменьшается вдвое. Составим запрос, в котором выдается список всех студентов II курса (группы А-2, Б-2) за II семестр (2_з, 2_э1, 2_э2) с указанием начисленной стипендии.

Создайте такой запрос по следующей схеме.

  1. Создайте новый запрос в режиме Конструктора. Добавьте в бланк запроса таблицы Учетная карта  и Ведомость.
  2. Перенесите в нижнюю половину запроса поля ФИО, Nгр, Форма опл, Льготы из таблицы Учетная карта и поля 2_з, 2_э1, 2_э2 из таблицы Ведомость.
  3. В ячейке Условие Отбора поля №гр укажите выбор групп II курса любым способом, например, используя операторы In ("А2";"Б2") или "А2" OR "Б2". (Можете предложить другой способ определения студентов одного курса?)
  4. В новом столбце создайте вычисляемое поле логического типа K, определяющее что студент может получать базовую стипендию, а именно: он обучается на бюджетной основе, не имеет задолженностей за сессию и оценки за экзамены выше «3». Выражение, соответствующее данному критерию, можно записать так:

K: [Paym]="б" And [2_p]="з" And ([2_e1]=4 Or [2_e2]=4) And [2_e1]>3 And [2_e2]>3

  1. По аналогии в новом столбце запишите выражение для вычисляемого поля логического типа L, определяющее что студент может получать повышенную стипендию: он обучается на бюджетной основе, не имеет задолженностей за сессию и все оценки за экзамены «5».
  2. В следующем столбце запишите выражение для вычисляемого поля логического типа M, определяющее что студент может получать половину базовой стипендии: он обучается на бюджетной основе, имеет льготы, сессию сдал без задолженностей и без двоек, но имеет тройки.
  3. В следующем новом столбце создайте вычисляемое поле денежного типа Стипендия, указав в Свойствах поля формат поля Денежный с числом знаков 2. Выражение для этого можно записать, используя функцию управления Iif. Это выражение будет достаточно громоздким, а именно:

Стип: IIf([K]=-1; [Стипендия]; IIf([L]=-1;[Стипендия]*2;

IIf ([M]=–1;[Стипендия]/2;0)))

  1. Посмотрите результаты работы запроса (рис. 36). Знак «-1» в логических полях K,L,M свидетельствует о том, к какой категории относится данный студент.
  2.  Сохраните запрос, присвоив ему имя Дифференцированная стипендия II курса.
  3. Создайте с помощью Конструктора новую таблицу Активисты факультета (рис. 37). В этой таблице представлен список студентов, занимающихся общественной работой.

Категория этой работы оценивается как «1», если работа соответствует уровню факультета, и «0», если – уровню группы. Если категория общественной работы «1»,то к стипендии добавляется M % от стипендии, которую получает данный студент.

11. Свяжите новую таблицу с таблицей Учетная карта, не устанавливая целостность данных.

Рис. 36. Результаты работы запроса на вычисление дифференцированной стипендии. Значение «-1» в логических полях K,L,M является
показателем для начисления стипендии в зависимости
от категории студента

Рис. 37. Таблица Активисты факультета

12. Модифицируйте запрос Дифференцированная стипендия II курса так, чтобы в нем вычислялась дополнительная стипендия, если категория общественной работы оценивается «1», и выдавалась суммарная стипендия (Рис. 38).

При введении вычисляемых полей не забудьте указать денежный формат полей.

Рис. 38. Результаты работы модифицированного запроса
Дифференцированная стипендия II курса для случая 10 % надбавки

к стипендии за общественную работу