DROP TABLE NEGOZI;
DROP TABLE OFFERTE;
DROP TABLE VENDITE;

CREATE TABLE NEGOZI (
	CODN CHAR(3) NOT NULL PRIMARY KEY,
	INDIRIZZO VARCHAR(20) NOT NULL,
	COMUNE VARCHAR(20) NOT NULL	);

CREATE TABLE OFFERTE (
	PRODOTTO CHAR(4) NOT NULL,
	CODN CHAR(3) NOT NULL REFERENCES NEGOZI,
	DAL DATE NOT NULL,
	AL DATE NOT NULL,
	PREZZO DEC(6,2) NOT NULL CHECK (PREZZO > 0),
	PRSCONTATO DEC(6,2) NOT NULL CHECK (PRSCONTATO > 0),
	CONSTRAINT SCONTO CHECK (PRSCONTATO < PREZZO),
	CONSTRAINT PERIODO CHECK (AL >= DAL),
	PRIMARY KEY (PRODOTTO,CODN,DAL)		);

CREATE TABLE VENDITE(
	PRODOTTO CHAR(4) NOT NULL,
	CODN CHAR(3) NOT NULL REFERENCES NEGOZI,
	DATA DATE NOT NULL,
	NUMERO INT NOT NULL CHECK (NUMERO > 0),
	PRIMARY KEY (PRODOTTO,CODN,DATA)		);


GRANT SELECT ON NEGOZI TO PUBLIC;
GRANT SELECT ON OFFERTE TO PUBLIC;
GRANT SELECT ON VENDITE TO PUBLIC;

INSERT INTO NEGOZI VALUES
('N01','Via Roma, 25','Bologna'),
('N02','Piazza Galilei, 3','Bologna'),
('N03','Via Verdi, 17','Cesena');

INSERT INTO OFFERTE VALUES
('P015','N01','25/10/2014','31/10/2014',100,75),
('P015','N02','22/10/2014','01/11/2014',110,80),

('P016','N01','25/10/2014','31/10/2014',60,50),
('P016','N02','22/10/2014','01/11/2014',60,45),
('P016','N03','25/10/2014','31/10/2014',100,75),

('P017','N01','11/11/2014','18/11/2014',100,90),
('P017','N02','10/04/2014','15/04/2014',110,80),
('P017','N02','11/11/2014','18/11/2014',110,70)
;


INSERT INTO VENDITE VALUES
('P015','N01','26/10/2014',30),
('P015','N01','27/10/2014',45),

('P015','N02','27/10/2014',15),
('P015','N02','28/10/2014',10),

('P016','N01','26/10/2014',5),
('P016','N01','27/10/2014',4),

('P016','N02','28/10/2014',4),
('P016','N03','25/10/2014',12),

('P017','N02','11/11/2014',6);


