CREATE TABLE cikk ( az SERIAL PRIMARY KEY, nev varchar(80) NOT NULL, mennyisegi_egyseg int4 NOT NULL, szin int4 NOT NULL, tipus int4 NOT NULL DEFAULT 1, megjegyzes varchar(250), felvitel_allapot int4 NOT NULL DEFAULT 1); CREATE TABLE keretrendeles ( az SERIAL PRIMARY KEY, szallito int4 NOT NULL, megrendelo int4 NOT NULL, CHECK (szallito <> megrendelo), az_jel varchar(20) NOT NULL, megjegyzes varchar(250), kezdes date NOT NULL, befejezes date NOT NULL DEFAULT '3000-01-01', CHECK (kezdes<=befejezes) ); CREATE TABLE megrendeles ( az SERIAL PRIMARY KEY, szallito int4 NOT NULL, megrendelo int4 NOT NULL, az_jel varchar(10), keretrendeles int4 REFERENCES keretrendeles(az), teljesites date NOT NULL, teljesites_kezdete date, allapot int4 NOT NULL, utolso_lezart_modositas int4 ); CREATE TABLE megrendeles_modositasa ( megrendeles int4 NOT NULL REFERENCES megrendeles(az), sorszam int4 check (sorszam >= 0) DEFAULT 0, PRIMARY KEY (megrendeles, sorszam), kelt date check ( (not kelt is null) or (not lezarva) ), beerkezett date NOT NULL DEFAULT now(), kezdemenyezo int4, leiras text, lezarva bool DEFAULT 'f', lezarta int4, megnyito int4, lezaras_idopontja timestamp); CREATE TABLE megrendeles_tetele ( megrendeles int4 NOT NULL REFERENCES megrendeles(az), modositas int4 NOT NULL, FOREIGN KEY (megrendeles, modositas) REFERENCES megrendeles_modositasa(megrendeles, sorszam), tetelszam int4 NOT NULL, archiv bool default 'f', PRIMARY KEY (megrendeles, tetelszam, modositas, archiv), sorrend int4 NOT NULL, kulso_cikk int4 NOT NULL, cikk int4 NOT NULL, minoseg int4 DEFAULT 1 NOT NULL, teljesites date NOT NULL, mennyiseg numeric(14,4) NOT NULL, mettol int4 ); create view megrendeles_tetele_eddigi as select mt.megrendeles, mt.tetelszam, mt.sorrend, mt.kulso_cikk, mt.cikk, mt.minoseg, mt.teljesites, mt.mennyiseg, mm.sorszam from megrendeles_tetele as mt, megrendeles_modositasa as mm where (mm.sorszam < mettol and mm.sorszam >= modositas and archiv) or (mm.sorszam >= modositas and not archiv) and mt.megrendeles = mm.megrendeles group by mt.megrendeles, tetelszam, sorrend, kulso_cikk, cikk, minoseg, teljesites, mennyiseg, sorszam; create view megrendeles_tetele_ervenyes as select mr.az, mr.az_jel, mr.allapot, mr.megrendelo, mr.szallito, (select keretrendeles.az_jel from keretrendeles where az=mr.keretrendeles) as keretrendeles, mr.keretrendeles as keretrendeles_az, mt.teljesites, mt.cikk, mt.kulso_cikk, mt.minoseg, mt.mennyiseg from megrendeles mr, megrendeles_tetele_eddigi mt where mr.az = mt.megrendeles and mt.sorszam = mr.utolso_lezart_modositas;