Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Скрипт по созданию хранимых процедур

РефератПомощь в написанииУзнать стоимостьмоей работы

DECLARE VARIABLE discount INTEGER; WHERE c. id_client=:id_client; CREATE PROCEDURE view_address. CREATE PROCEDURE not_executed. DECLARE VARIABLE summa money; SET c. discount = :discount. Apartament_number transfer). GROUP BY o. id_client. INTO: id_client:summa. AND o. executed = '0'. UPDATE client c. Discount = '0'; FROM orders o. Set term ;!! Set term !!; Suspend; Suspend; Begin. Begin. Begin… Читать ещё >

Скрипт по созданию хранимых процедур (реферат, курсовая, диплом, контрольная)

В базе данных необходимо создать следующие хранимые процедуры:

  • 1. Вывести все непогашенные заказы вместе с товаром, их количеством и сотрудников которые их выполняют.
  • 2. Расчет и занесение скидки для клиента в зависимости от суммы потраченной им на товары.
  • 3. Вывести город, улицу, дом, квартиру, и человека который проживает по данному адресу.

/************************************************************/.

/*Вывести все непогашенные заказы вместе с товаром, их количеством и сотрудников которые их выполняют */.

/************************************************************/.

/*Вводим поле «погашено» в таблицу заказ*/.

ALTER TABLE orders ADD executed INTEGER CHECK ((executed IN (0,1)) and (executed is not null));

/*вводим для клиента поле скидка*/.

ALTER TABLE client ADD discount INTEGER DEFAULT 0 CHECK (discount IS NOT NULL);

SET TERM !!;

CREATE PROCEDURE not_executed.

RETURNS (id_order INTEGER, name VARCHAR (20), quantity INTEGER,.

manager VARCHAR (20), seller VARCHAR (20), forwarding_agent VARCHAR (20), driver VARCHAR (20)).

AS.

BEGIN.

FOR.

SELECT o. id_order, r. quantity, g.name,.

  • (SELECT e. fio FROM employee e WHERE e. id_employee=o.manager) AS manager,
  • (SELECT e. fio FROM employee e WHERE e. id_employee=o.seller) AS seller,
  • (SELECT e. fio FROM employee e WHERE e. id_employee=d.forwarding_agent) AS forwarding_agent,
  • (SELECT e. fio FROM employee e WHERE e. id_employee=d.driver) AS driver

FROM orders o, row_order r, goods g, row_delivery rd, delivery d.

WHERE r. id_order=o.id_order AND r. id_goods=g.id_goods AND rd. id_order=o.id_order AND d. id_delivery=rd.id_delivery.

AND o. executed = '0'.

INTO :id_order:quantity:name:manager:seller:forwarding_agent:driver.

DO.

SUSPEND;

END!

/************************************************************/.

/*Расчет и занесение скидки для клиента в зависимости от суммы потраченной им на товары */.

/************************************************************/.

CREATE PROCEDURE calculate_discount.

AS.

DECLARE VARIABLE id_client INTEGER;

DECLARE VARIABLE summa money;

DECLARE VARIABLE discount INTEGER;

BEGIN.

FOR.

SELECT o. id_client, SUM (o.cost).

FROM orders o.

GROUP BY o. id_client.

INTO :id_client:summa.

DO.

BEGIN.

IF (:summa>'3000') THEN discount = '5'; ELSE.

IF ((:summa'3000')) THEN discount = '7'; ELSE.

IF (:summa>'10 000') THEN discount = '10'; ELSE.

discount = '0';

UPDATE client c.

SET c. discount = :discount.

WHERE c. id_client=:id_client;

END.

END!

/************************************************************/.

/*Вывести город, улицу, дом, квартиру, и человека который проживает по данному адресу*/.

/************************************************************/.

CREATE PROCEDURE view_address.

returns (fio varchar (20), city_name varchar (20), street_name varchar (20), house_number transfer,.

apartament_number transfer).

AS.

BEGIN.

FOR.

SELECT c. fio, ci. city_name, s. street_name, a. house_number, a. apartament_number.

FROM client c, address a, city ci, street s.

WHERE c. id_address=a.id_address AND a. id_city=ci.id_city AND a. id_street=s.id_street.

INTO :fio:city_name:street_name:house_number:apartament_number.

DO.

suspend;

END!

SET TERM ;!!

Показать весь текст
Заполнить форму текущей работой