create table tip_serviciu( cod_tip_serv number(2) constraint pk_cod_tip_serv pri mary key, den varchar2(20)); create table data_inch(ID_data_inch date constraint pk_ID_data_inch primary key, luna number(2) CONSTRAINT ck_luna CHECK (luna>=1 and luna<=12), an number(4)); create table tara( cod_tara number(3) constraint pk_tara_cod_tara primary key, d en varchar2(25)); create table loc(cod_loc number(4) constraint pk_cod_loc primary key, den varcha r2(30), cod_tara number(3) constraint fk_loc_cod_tara references tara(cod_tara)) ; create table contracte_inch (cod_tip_serv number(2) constraint fk_contracte_inch _cod_tip_serv references tip_serviciu(cod_tip_serv), cod_loc number(4) constraint fk_contracte_inch_cod_loc references loc(cod_loc), ID_prestator number(5) constraint fk_contracte_inch_ID_prestator references pres tatori_serv(ID_prestator), nr_contracte number(5), val_contracte number(7,2), constraint pk_contracte_inch primary key(cod_tip_serv,cod_loc, ID_prestator)); create table contr_inch (cod_tip_serv number(2) constraint fk_contr_inch_cod_tip _serv references tip_serviciu(cod_tip_serv), data_inch DATE constraint fk_contr_inch_data_inch references data_inch(data_inc h), nr_contracte number(5), constraint pk_contr_inch primary key(cod_tip_serv, data_inch)); create table turist( cod_tip_serv number(2) constraint fk_turist_cod_tip_serv references tip_serviciu (cod_tip_serv), cod_tara number(3) constraint fk_turist_cod_tara references tara(cod_tara), nr_t uristi number(5), constraint pk_turist primary key( cod_tip_serv,cod_tara)); drop table tip_serviciu; drop table turist; drop table contracte_inch; drop table varsta_turisti; drop table loc; drop table tara; drop table data_inch; drop table prestatori_serv; INSERT INTO prestatori_serv SELECT cod_prest, nume FROM prest_serv GROUP BY cod_ prest, nume; INSERT INTO tip_serviciu SELECT cod_tip_serv, den_tip_serv FROM tip_serv GROUP B Y cod_tip_serv, den_tip_serv; INSERT INTO data_inch SELECT data_incheierii, EXTRACT (MONTH FROM data_incheieri i), EXTRACT (YEAR FROM data_incheierii) FROM contracte GROUP BY data_incheierii;
INSERT INTO tara SELECT tari.cod_tara, tari.den FROM tari GROUP BY tari.cod_tara , tari.den; INSERT INTO loc SELECT localit.cod_localit, localit.den_localit, tari.cod_tara FROM localit, tari WHERE tari.cod_tara=localit.cod_tara GROUP BY localit.cod_localit, localit.den_localit, tari.cod_tara;
INSERT INTO varsta_turisti SELECT cod_turist, EXTRACT(YEAR FROM sysdate)-EXTRACT (YEAR FROM data_nast) FROM turisti; delete from varsta_turisti; INSERT INTO contracte_inch SELECT tip_serv.cod_tip_serv, localit.cod_localit, pr est_serv.cod_prest, data_incheierii, count(nr_contract), sum(pret) FROM tip_serv, localit, prest_serv, oferte_agentie, contracte WHERE ti p_serv.cod_tip_serv=oferte_agentie.cod_tip_serv AND localit.cod_localit=oferte_agentie.cod_localit AND prest_serv.cod_pres t=oferte_agentie.cod_prest AND oferte_agentie.ID_oferta= contracte.ID_oferta GROUP BY tip_serv.cod_tip_serv, localit.cod_local it, prest_serv.cod_prest, data_incheierii;
INSERT INTO turist SELECT tip_serv.cod_tip_serv, tari.cod_tara, count(contracte. nr_contract) FROM turisti, tip_serv, tari, contracte GROUP BY tip_serv.cod_tip_serv, tari.cod_tara;