ACE VIEW "public". "Unclaimed_Goods" (, _at_storehouse, _of_last_reteil) g.name,. count_at_storehouse, (r.date_of_reteil) AS date_of_last_reteilgoods g, rg.goods_id = r.goods_id AND
(((SELECT max (r.date_of_reteil) AS max FROM reteil r WHERE g.goods_id =. goods_id)) + 30) <= now () BY g.name,. count_at_storehouse;
Результат роботи:
В
6.2 Тригери
. consigment_date_check (Перевірка дати поставки партії (вона повинна бути менше або дорівнює поточної))
CREATE TRIGGER "consigment_date_check" BEFORE INSERT OR UPDATE "public". "consignment" FOR EACH ROW PROCEDURE "public". "cons_date_check" (); OR REPLACE FUNCTION "public" . "cons_date_check" () RETURNS trigger AS
$ body $ NEW.consignment_date> now () THEN EXCEPTION 'Введена дата більше поточної!';
end if; new;;
$ body $ 'plpgsql'ON NULL INPUTINVOKER100;
Результат роботи:
В
Тригери В«goods_date_checkВ», В«reteil_date_checkВ» мають аналогічний код і результат роботи.
. goods_update_from_consig (Автоматичне додавання в полі В«Кількість на складіВ» таблиці В«ТовариВ» кількості товару, зазначеного під час здійснення поставки, а також заповнення поля В«Ціна останньої поставкиВ»)
CREATE TRIGGER "goods_update_from_consig" AFTER INSERT "public". "consignment" FOR EACH ROW PROCEDURE "public". "goods_works" (); OR REPLACE FUNCTION "public". " ; goods_works "() RETURNS trigger AS
$ body $ goods SET SET price_of_last_delivery = NEW.delivery_priceconsignment (goods.goods_id = NEW.goods_id); new;;
$ body $ 'plpgsql'ON NULL INPUTINVOKER100;
. reteil_dateSending (Автоматична установка дати відправлення товару (дата покупки + 5 днів))
CREATE TRIGGER "reteil_dateSending" AFTER INSERT "public". "reteil" FOR EACH ROW PROCEDURE "public". "dateSending" (); OR REPLACE FUNCTION "public". " ; dateSending "() RETURNS trigger AS
$ body $ accounts SET date_of_sending = NEW.date_of_reteil +5 (accounts.account_id = NEW.account_id); NEW;;
$ body $ 'plpgsql'ON NULL INPUTINVOKER100;
4. reteil_update_count (При здійсненні продажу - автоматичне зменшення числа товару на складі на кількість проданого товару, а також висновок на екран помилки в разі, коли кількість на продаж більше, ніж кількість товару на складі)
CREATE TRIGGER "reteil_update_count" BEFORE INSERT "public". "reteil" FOR EACH ROW PROCEDURE "public". "reteil_w...