е_організаціі Наіменаніе організації , (Заказ.Номер_заказа) AS Кількість замовлень КліентJOIN ЗаказКлиент.ID_Клиента=Заказ.Номер_заказаYEAR(Заказ.Дата_заключения)=YEAR(GETDATE())BY Кліент.Наіменованіе_організаціі
HAVING COUNT (Заказ.Номер_заказа) gt;=2BY COUNT (Заказ.Номер_заказа) ASC
Рис.6.2 Список постійних клієнтів
Підведення підсумків по виручці за минулий місяць (рис.6.3.)
SELECT SUM (Оплата.Сумма) AS Прибуток
FROM ОплатаJOIN СчетСчет.Номер_счета=Оплата.ID_оплатыMONTH(Оплата.Дата_оплаты)=1
рис.6.3. Загальна сума по всіх послугах
7. Збережені процедури
Збережені процедури є способом, за допомогою якого можна створювати підпрограми, що працюють на сервері і керують його процесами.
У цій роботі розглянемо такі збережені процедури:
. Процедура, яка за ідентифікаційним номером співробітника видає оформлення їм замовлення (рис.7.1.)
CREATE PROCEDURE aaa (id char (3))
ASСотруднікі.ID_Сотрудніка, Сотруднікі.Фамілія, Сотруднікі.Імя, Сотруднікі.Отчество, Сотруднікі.Должность, Заказ.Номер_заказа, Заказ.Дата_заключеніяСотруднікі INNER JOIN ЗаказСотруднікі.ID_Сотрудніка=Заказ.ID_Сотрудніка
WHERE Сотрудники.ID_Сотрудника=@id lt; mailto: Сотрудники.ID_Сотрудника=@idgt;
Рис.7.1 Список замовлень, оформлених співробітником з id 001
. Тригери
Тригер - це спеціальний тип збереженої процедури, яку SQL Server виконує при операціях додавання, модифікації і видалення у даній таблиці. Найбільш загальне застосування тріггера- підтримка ділових правил в базах даних.
Тригер, що забороняє оформляти замовлення клієнтів, які не сплатили рахунок за попередній замовлення (рис.8.1.)
CREATE TRIGGER allow_orderЗаказINSERT @ klient_id char (3)unpaid_order_amount int @ klient_id=I.ID_КліентаЗаказ Z, Inserted IZ.Номер_Заказа=I.Номер_Заказа@unpaid_order_amount=count (Заказ.Номер_заказа) ЗаказJOIN Рахунок
ON Заказ.Номер_заказа=Счет.Номер_заказаСчет.Пометка_об_оплате=laquo;Falseraquo;
AND Заказ.ID_Кліента=@ klient_id @ unpaid_order_amount gt; 0TRAN
RAISERROR ( Неможливо оформити замовлення, т.к клієнт не сплатив попередній raquo ;, 16, 10)
рис.8.1 Спроба оформити замовлення клієнту, не сплатить попередній рахунок
.Тріггер, що забороняє оформляти замовлення в останній тиждень місяця (рис.8.2) TRIGGER trig1ZakazINSERT, UPDATE @ DayOfMonth TINYINT @ DayOfMonth=DatePart (Day, I.Дата_заключенія) Замовлення S, Inserted IS.Номер_заказа=I.Номер_заказа S.ID_Кліента =I.ID_КліентаS.ID_Сотрудніка=I.ID_СотруднікаS.ID_Услугі=I.ID_Услугі
IFDayOfMonth gt; 24TRAN ( Неможливо оформити замовлення raquo ;, 16, 10)
END
рис.8.2. Спроба некоректного введення даних
Висновок
У ході виконання курсової роботи була розроблена база даних фірми надає телекомунікаційні послуги. База даних допомагає автоматизувати обробку даних необхідних для функціонування фірми. До таких даних можуть ставитися відомості про клієнтів і їх замовленнях, надання послуг тощо.
В результаті виконання даної курсової роботи були вирішені завдання, поставлені в розділі 1. Були побудовані логічна і фізична моделі даних, були описані інформаційні потреби користувачів, були створені збережені процедури і тригери.
Розроблена база даних добре справляється зі своїми завданнями і
може допомогти в автоматизації діяльності фірми надає послуги телекомунікації, зокрема оренди обчислювальних потужностей.
Список використаної літератури
Бураков П.В., Петров В.Ю. Введення в системи бази даних - Санкт-Петербург :, 2010. - 129с.- Прим.