
Вариант 10 Ляпин
Создать информационную систему, позволяющую добавлять, изменять, удалять и просматривать информацию о продажах. В таблицу прайс-лист добавить аргумент Количество_товаров_на складе.
Система должна контролировать корректное значение даты продажи (не превосходить сегодняшнюю дату) и количества проданного товара (не более, чем есть на складе). При продаже товара значение в аргументе Количество_товаров_на складе таблицы прайс-лист должно измениться с учетом этой продажи.
Система должна сохранять и позволять просматривать информацию по добавлению, изменению и удалению информации о продаже. Разрешить удаление из продаж только тех товаров, количество которых на складе меньше или равно 1. В противном случае удаление запретить.
Система должна отображать:
Список товаров, с указанием суммарной стоимости продаж этого товара, проданных в текущем месяце/в текущем квартале/текущем году (по желанию пользователя).
Список товаров, купленных на сумму в заданных пределах (границы суммы — входные параметры) в определенный временной период (входные параметры) с указанием этой суммы.
Список продавцов, для каждого из которых вывести список наиболее продаваемых/наименее продаваемых им товаров (по выбору пользователя) на заданную дату (входной параметр).
Список тех товаров, которые принадлежат выбранной пользователем группе товаров (входной параметр), которые были проданы каждым из продавцов не менее n раз (входной параметр) в заданный временной интервал (границы интервала — входные параметры).
Вариант 11 Курдин Взять задание у преподавателя лично.
Вариант 12 Ушаков Взять задание у преподавателя лично.
DROP TABLE Dilers;
Дилеры (код дилера, имя дилера, адрес, телефон, статус)
CREATE TABLE Dilers
(
N_Dil NUMBER NOT NULL ,
DilName VARCHAR2(12) NULL ,
Adres VARCHAR2(20) NULL ,
Phone VARCHAR2(20) NULL ,
Status_id CHAR(2) NULL );
ALTER TABLE Dilers
ADD CONSTRAINT XPKDilers PRIMARY KEY (N_Dil);
Прайс-лист (Код товара, дата поступления товара на склад, цена за единицу)
CREATE TABLE PriceList
(
Dat DATE NOT NULL ,
Prod_id NUMBER NOT NULL ,
Price NUMBER NULL );
ALTER TABLE PriceList
ADD CONSTRAINT XPKPriceList PRIMARY KEY (Dat,Prod_id);
Группа товаров (код группы товаров, название группы товаров, примечание)
CREATE TABLE Product_Group
(
PG_id CHAR(2) NOT NULL ,
Name VARCHAR2(12) NULL ,
Prim VARCHAR2(20) NULL );
ALTER TABLE Product_Group
ADD CONSTRAINT XPKProduct_Group PRIMARY KEY (PG_id);
Товары (код товара, название товара, пин-код товара, дата изготовления, срок годности, код группы товаров, код статуса)
CREATE TABLE Products
(
Prod_id NUMBER NOT NULL ,
Name VARCHAR2(20) NULL ,
PinCode CHAR(12) NULL ,
Data_iz DATE NULL ,
SR_GD DATE NULL ,
PG_id CHAR(2) NULL ,
Status_id CHAR(2) NULL );
ALTER TABLE Products
ADD CONSTRAINT XPKProducts PRIMARY KEY (Prod_id);
Продавцы (код продавца, имя продавца, номер карточки, номер дилера, статус продавца)
CREATE TABLE SaleMan
(
Men_Pers_Code CHAR(5) NOT NULL ,
Name VARCHAR2(20) NULL ,
Card_Code VARCHAR2(12) NULL ,
N_Dil NUMBER NULL ,
Status_id CHAR(2) NULL );
ALTER TABLE SaleMan
ADD CONSTRAINT XPKSaleMan PRIMARY KEY (Men_Pers_Code);
Карта продажи (номер заказа, количество товара. Дата продажи, код товара, дата поступления товара на склад, код продавца, код покупателя)
CREATE TABLE SaleMap
(
Map_id NUMBER NOT NULL ,
Quantity NUMBER NULL ,
Sale_Dat DATE NULL ,
Prod_id NUMBER NULL ,
Dat DATE NULL ,
Men_Pers_Code CHAR(5) NULL ,
Sid NUMBER NULL );
ALTER TABLE SaleMap
ADD CONSTRAINT XPKSaleMap PRIMARY KEY (Map_id);
Статус (код статуса, имя группы статуса, имя статуса, примечание)
CREATE TABLE Status
(
Status_id CHAR(2) NOT NULL ,
Status_Group CHAR(2) NULL,
Status_name VARCHAR2(12) NULL ,
Prim VARCHAR2(20) NULL );
ALTER TABLE Status
ADD CONSTRAINT XPKStatus PRIMARY KEY (Status_id);
Покупатели (код покупателя, имя покупателя, адрес, примечание)
CREATE TABLE Subscribers
(
Sid NUMBER NOT NULL ,
Name CHAR(12) NULL ,
Adres VARCHAR2(20) NULL ,
Phone VARCHAR2(20) NULL,
Prim VARCHAR2(20) NULL );
ALTER TABLE Subscribers
ADD CONSTRAINT XPKSubscribers PRIMARY KEY (Sid);
Договоры (номер договора, код покупателя, дата начала договора, дата окончаня договора, пимечание)
CREATE TABLE Subscribers_Dogovor
(
N_Dog CHAR(10) NOT NULL ,
Sid NUMBER NOT NULL ,
Data_Start Date NULL ,
Data_Start Date NULL ,
Prim Varchar2 (50) NULL);
ALTER TABLE Subscribers_Dogovor
ADD CONSTRAINT XPKSubscribers_Dogovor PRIMARY KEY (N_Dog,Sid);
ALTER TABLE Dilers
ADD (CONSTRAINT R_100 FOREIGN KEY (Status_id) REFERENCES Status(Status_id) ON DELETE SET NULL);
ALTER TABLE PriceList
ADD (CONSTRAINT R_101 FOREIGN KEY (Prod_id) REFERENCES Products(Prod_id));
ALTER TABLE Products
ADD (CONSTRAINT R_102 FOREIGN KEY (PG_id) REFERENCES Product_Group(PG_id) ON DELETE SET NULL);
ALTER TABLE Products
ADD (CONSTRAINT R_103 FOREIGN KEY (Status_id) REFERENCES Status(Status_id) ON DELETE SET NULL);
ALTER TABLE SaleMan
ADD (CONSTRAINT R_104 FOREIGN KEY (N_Dil) REFERENCES Dilers(N_Dil) ON DELETE SET NULL);
ALTER TABLE SaleMan
ADD (CONSTRAINT R_105 FOREIGN KEY (Status_id) REFERENCES Status(Status_id) ON DELETE SET NULL);
ALTER TABLE SaleMap
ADD (CONSTRAINT R_106 FOREIGN KEY (Dat,Prod_id) REFERENCES PriceList(Dat,Prod_id) ON DELETE SET NULL);
ALTER TABLE SaleMap
ADD (CONSTRAINT R_107 FOREIGN KEY (Men_Pers_Code) REFERENCES SaleMan(Men_Pers_Code) ON DELETE SET NULL);
ALTER TABLE SaleMap
ADD (CONSTRAINT R_108 FOREIGN KEY (Sid) REFERENCES Subscribers(Sid) ON DELETE SET NULL);
ALTER TABLE Status
ADD (CONSTRAINT R_109 FOREIGN KEY (Status_Group) REFERENCES Status(Status_id) ON DELETE SET NULL);
ALTER TABLE Subscribers_Dogovor
ADD (CONSTRAINT R_110 FOREIGN KEY (Sid) REFERENCES Subscribers(Sid));