/* Tabeller til Eksamen H08, del2, uke 10 */ /* Merk: Jeg har brukt varchar i stedet for int for ? representere alle fakturanr, linjenr osv. for ? gj?re det lettere ? skille mellom dem (eks: ordre har nummer o1...on). Denne koden er p? ingen m?te fullkommen, og er kun skrevet for ? gi dem som ?nsker det noen enkle tabeller ? kj?re sp?rringene mot. */ drop table Leverandor cascade; drop table Ordre cascade; drop table Ordrelinje cascade; drop table Faktura cascade; drop table Fakturalinje cascade; drop table Detaljlinje cascade; create table Leverandor ( navn varchar(30) primary key, adresse varchar(70), epost varchar(40), sentralbord varchar(20), supporttelefon varchar(20) ); create table Ordre ( leverandor varchar(30) references Leverandor(navn), ordrenr varchar(30), dato date, primary key (leverandor, ordrenr) ); create table Ordrelinje ( leverandor varchar(30), ordrenr varchar(30), linjenr varchar(30), varenr varchar, antall int, primary key (leverandor, ordrenr, linjenr), foreign key (leverandor, ordrenr) references Ordre(leverandor, ordrenr) ); create table Faktura ( leverandor varchar(30), fakturanr varchar(30), ordrenr varchar(30), leveringsdato date, belop float, konto varchar(30), primary key (leverandor, fakturanr), foreign key (leverandor, ordrenr) references Ordre(leverandor, ordrenr) ); create table Fakturalinje ( leverandor varchar(30), fakturanr varchar(30), linjenr varchar(30), varenr varchar(30), antall int, stykkpris float, konto varchar(30), primary key (leverandor, fakturanr, linjenr), foreign key (leverandor, fakturanr) references Faktura(leverandor, fakturanr) ); create table Detaljlinje ( leverandor varchar(30), fakturanr varchar(30), linjenr varchar(30), antall int, konto varchar(30), primary key (leverandor, fakturanr, linjenr, konto), foreign key (leverandor, fakturanr, linjenr) references Fakturalinje(leverandor, fakturanr, linjenr) ); ------------------ insert into Leverandor values ('lev1', 'portveien 1', 'l1@leverandor.no', '12345678', '87654321'); insert into Ordre values ('lev1', 'o1' , '2009-01-01'); insert into Ordrelinje values ('lev1', 'o1', 'ol1', 'v1', 2); insert into Faktura values ('lev1', 'f1', 'o1', '2009-01-02', 9.90, 'k1'); insert into Fakturalinje values ('lev1', 'f1', 'fl1', 'v1', 1, 9.90, 'k1'); insert into Ordre values ('lev1', 'o2', '2009-07-01'); insert into Ordrelinje values ('lev1', 'o2', 'ol1', 'v1', 3); insert into Ordrelinje values ('lev1', 'o2', 'ol2', 'v2', 1); insert into Faktura values ('lev1', 'f2', 'o2', '2009-07-02', 29.80, 'k2'); insert into Fakturalinje values ('lev1', 'f2', 'fl1', 'v1', 1, 9.90, 'k2'); /* hovedkonto */ insert into Fakturalinje values ('lev1', 'f2', 'fl2', 'v2', 1, 19.90, 'k5'); /* unntak */ insert into Faktura values ('lev1', 'f3', 'o2', '2009-10-08', 19.80, 'k3'); insert into Fakturalinje values ('lev1', 'f3', 'fl1', 'v1', 2, 9.90, 'k3'); /* Hovedkonto */ insert into Detaljlinje values ('lev1', 'f3', 'fl1', 1, 'k7'); /* Unntak */ insert into Leverandor values ('lev2', 'portveien 2', 'l2@leverandor.no', '12121212', '21212121'); insert into Ordre values ('lev2', 'o1', '2009-10-21'); insert into Ordrelinje values ('lev2', 'o1', 'ol1', 'v2', 2); insert into Ordrelinje values ('lev2', 'o1', 'ol2', 'v3', 2); insert into Faktura values ('lev2', 'f1', 'o1', '2009-10-21', 39.80, 'k1'); insert into Fakturalinje values ('lev2', 'f1', 'fl1', 'v2', 1, 19.90, 'k1'); /* Hovedkonto */ insert into Fakturalinje values ('lev2', 'f1', 'fl2', 'v2', 1, 19.90, 'k5'); /* Unntak */