/* Demo táblák letrehozasa es feltöltése Postgresql valtozat */
DROP VIEW OSZT_ATLAG;
DROP VIEW BEOSZT_ATLAG;
DROP TABLE IF EXISTS ALKALMAZOTT;
DROP TABLE IF EXISTS OSZTALY;
DROP TABLE IF EXISTS FIZ_OSZT;
DROP TABLE IF EXISTS DUMMY;
DROP SEQUENCE IF EXISTS AZON;

CREATE TABLE OSZTALY (
 OSZT_AZON        int2 PRIMARY KEY,
 NEV              VARCHAR(14) NOT NULL,
 VAROS            VARCHAR(13) NOT NULL,
 CONSTRAINT       UNEV UNIQUE(NEV)); /* nem lehet ket azonos nevu osztaly */

INSERT INTO OSZTALY VALUES (10,'SZAMLÁZÁS','BUDAPEST');
INSERT INTO OSZTALY VALUES (20,'KUTATÁS','ESZTERGOM');
INSERT INTO OSZTALY VALUES (30,'RAKTÁR','BUDAÖRS');
INSERT INTO OSZTALY VALUES (40,'FORGALMAZÁS','BUDAPEST');

CREATE TABLE ALKALMAZOTT (
 ALK_AZON            int2 PRIMARY KEY,
 NEV                 VARCHAR(10) NOT NULL,
 BEOSZTAS            VARCHAR(9) NOT NULL,
 FONOK               int2 CONSTRAINT FONOK_KORL REFERENCES ALKALMAZOTT (ALK_AZON),
 BELEPES             DATE NOT NULL,
 FIZETES             float4 NOT NULL,
 JUTALOM             float4,
 OSZT_AZON           int2 NOT NULL,
 CONSTRAINT ALK_KULSO_KULCS FOREIGN KEY (OSZT_AZON) REFERENCES OSZTALY (OSZT_AZON));

INSERT INTO ALKALMAZOTT VALUES (7839,'KIRÁLY','ELNÖK',NULL,'17-NOV-81',5000,NULL,10);
INSERT INTO ALKALMAZOTT VALUES (7698,'BIRÓ','MANAGER',7839,'1-MAY-81',2850,NULL,30);
INSERT INTO ALKALMAZOTT VALUES (7782,'CSALÓ','MANAGER',7839,'9-JUN-81',2450,NULL,10);
INSERT INTO ALKALMAZOTT VALUES (7566,'JONÁS','MANAGER',7839,'2-APR-81',2975,NULL,20);
INSERT INTO ALKALMAZOTT VALUES (7654,'MARTON','ÜGYNÖK',7698,'28-SEP-81',1250,1400,30);
INSERT INTO ALKALMAZOTT VALUES (7499,'ALI','ÜGYNÖK',7698,'20-FEB-81',1600,300,30);
INSERT INTO ALKALMAZOTT VALUES (7844,'TURCSI','ÜGYNÖK',7698,'8-SEP-81',1500,0,30);
INSERT INTO ALKALMAZOTT VALUES (7900,'JENES','ELÔADÓ',7698,'3-DEC-81',950,NULL,30);
INSERT INTO ALKALMAZOTT VALUES (7521,'VÁMOS','ÜGYNÖK',7698,'22-FEB-81',1250,500,30);
INSERT INTO ALKALMAZOTT VALUES (7902,'FINESZ','ELEMZÔ',7566,'3-DEC-81',3000,NULL,20);
INSERT INTO ALKALMAZOTT VALUES (7369,'SZABÓ','ELÔADÓ',7902,'17-DEC-80',800,NULL,20);
INSERT INTO ALKALMAZOTT VALUES (7788,'SKÓT','ELEMZÔ',7566,'09-DEC-82',3000,NULL,20);
INSERT INTO ALKALMAZOTT VALUES (7876,'ÁDÁM','ELÔADÓ',7788,'12-JAN-83',1100,NULL,20);
INSERT INTO ALKALMAZOTT VALUES (7934,'MÜLLER','ELÔADÓ',7782,'23-JAN-82',1300,NULL,10);

CREATE TABLE FIZ_OSZT (
 F_OSZT            int2 PRIMARY KEY,
 MIN               float4 NOT NULL,
 MAX               float4 NOT NULL,
 CONSTRAINT        MIN_MAX CHECK (MIN < MAX)
);

INSERT INTO FIZ_OSZT VALUES (1,700,1200);
INSERT INTO FIZ_OSZT VALUES (2,1201,1400);
INSERT INTO FIZ_OSZT VALUES (3,1401,2000);
INSERT INTO FIZ_OSZT VALUES (4,2001,3000);
INSERT INTO FIZ_OSZT VALUES (5,3001,9999);

CREATE TABLE DUMMY (
 DUMMY               int2 );

INSERT INTO DUMMY VALUES (0);

CREATE SEQUENCE AZON
INCREMENT 1
START 7935;

CREATE VIEW OSZT_ATLAG AS
	SELECT OSZTALY.NEV, AVG(FIZETES) FROM OSZTALY, ALKALMAZOTT
		WHERE OSZTALY.OSZT_AZON = ALKALMAZOTT.OSZT_AZON
		GROUP BY OSZTALY.NEV;
		
CREATE VIEW BEOSZT_ATLAG AS
	SELECT BEOSZTAS, AVG(FIZETES) FROM ALKALMAZOTT
		GROUP BY BEOSZTAS;