СУБД MS SQL Server: разработка пользовательских функций
Лабораторная работа № 2
Создать пользовательские функции – по одной функции каждого из типов:
- скалярные функции
- табличные функции (Inline, Multistatement)
Задание 1. Создать пользовательскую скалярную функцию, которая будет возвращать:
- сумму всех хранящихся платежей (без параметров) | Student.Gomel.by
- сумму платежей для конкретной группы (параметр – название группы)
- сумму платежей для конкретного студента (параметры – ФИО студента)
- сумму платежей для конкретного города (параметр – код города) [оригинал]
- количество платежей для конкретного города (параметр – код города)
- количество улиц в конкретном городе (параметр – название города)
- количество студентов из конкретного города (параметр – название города)
- количество платежей конкретного студента (параметры – ФИО студента)
- среднюю сумму платежа для конкретного студента (параметры – ФИО студента) | Student.Gomel.by
- количество студентов на заданном факультете (параметр - сокращенное название факультета)
- название группы, в которой учится студент (параметры – ФИО студента)
- полное название факультета, на котором учится студент (параметры – ФИО студента)
- максимальную сумму платежа студента (параметры – ФИО студента)
- минимальную сумму платежа на заданном факультете (параметр - факультет)
- название улицы, на которой живёт студент (параметры – ФИО студента) [оригинал]
Задание 2. Создать пользовательскую табличную функцию Inline, которая будет возвращать следующую информацию:
- данные о всех платежах, произведенных в заданный промежуток времени
- данные о всех платежах студентов заданного факультета | Student.Gomel.by
- данные о всех платежах студентов заданной группы
- данные о суммах оплат студентов заданного факультета
- телефоны студентов, производивших платежи в заданный период времени
- города, в которых живут студенты заданной группы [оригинал]
- города, в которых живут студенты заданного факультета
- ФИО студентов заданного факультета, не совершавших платежей
- количество студентов заданного факультета, проживающих в заданном городе (для списка городов)
- количество студентов, проживающих в заданном городе (для списка городов)
- ФИО студентов, имеющих платежи, превышающие заданную сумму
- количество студентов имеющих платежи, превышающие заданную сумму (для списка факультетов) | Student.Gomel.by
- количество студентов заданного факультета (для списка факультетов)
- ФИО и телефоны студентов заданной группы
- ФИО и телефоны студентов заданного факультета [оригинал]
Задание 3. Создать пользовательскую табличную функцию Multistatement, которая будет выполнять следующую обработку данных:
- перевести всех студентов на следующий курс и удалить всех выпускников
- все студенты заданной группы выполнили платежи за указанную образовательную услугу за текущую дату с указанной суммой оплаты
- все студенты, которые оплатили указанную услугу в текущем семестре, выполнили доплату за ту же услугу в размере 20% от предыдущей оплаты
- студентов, оплативших указанную услугу в текущем месяце, перевести в параллельную группу [оригинал]
- сведения о студентах (ФИО, факультет, дата рождения), достигших 18 лет в текущем семестре, перенести в таблицу с заданным именем
- студентам из указанного города уменьшить оплату по указанной услуге на 20%
- сведения о студентах (ФИО, факультет, группа), у которых нет заданного платежа, перенести в таблицу с заданным именем
- сведения о студентах (ФИО, факультет, группа), оплативших заданную услугу до заданной даты, перенести в таблицу с заданным именем
- удалить все сведения о студентах, которые за текущий месяц не оплатили заданную образовательную услугу | Student.Gomel.by
- удалить все сведения о платежах, выполненных ранее указанного срока
- обновить дату оплаты указанной услуги на дату последнего дня того семестра, в котором выполнялась оплата
- удалить все записи о платежах студентов-пятикурсников
- все студенты заданного факультета оплатили указанную сумму за указанную услугу за текущую дату
- вывести сведения о студентах (ФИО, факультет, группа), которые оплатили хотя бы одну образовательную услугу, оплачиваемую заданным студентом
- перевести на второй курс всех первокурсников: тех, кто оплатил обучение за первый курс, и студентов-«бюджетников» (не выполнявших платежи за время учебы на первом курсе) [оригинал]
Следующая лабораторная работа >>