Cvičná databáze Prodej

Z GeoWikiCZ

Tabulky

Kategorie
id
popis
Zbozi
id
kategorie_id
nazev
popis
Prodej
zbozi_id
kusu
cena_za_kus
datum

Příklady

Určete kategorii potravin s maximálním obratem (tj. v které kategorii je maximální součet kusy*cena).

popis celkovy prijem
Sladkosti 12290.70

Skript

CREATE TABLE kategorie (
  id SERIAL PRIMARY KEY check (id > 0),
  popis varchar(20) NOT NULL
);

CREATE TABLE  zbozi (
  id SERIAL PRIMARY KEY check (id > 0),
  kategorie_id integer REFERENCES kategorie(id),
  nazev varchar(20) NOT NULL,
  popis varchar(50)
);

CREATE TABLE prodej (
  zbozi_id    integer REFERENCES zbozi(id),
  kusu        integer NOT NULL CHECK (kusu >= 0),
  cena_za_kus NUMERIC(10,2) NOT NULL CHECK (cena_za_kus > 0),
  datum       date
);

-- vlozeni kategorii
INSERT INTO kategorie(id, popis) VALUES(DEFAULT, 'Uzeniny');
INSERT INTO kategorie(id, popis) VALUES(DEFAULT, 'Mlecne vyrobky');
INSERT INTO kategorie(id, popis) VALUES(DEFAULT, 'Sladkosti');
INSERT INTO kategorie(id, popis) VALUES(DEFAULT, 'Pecivo');

INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 1, 'Spisske parky', 'Spisske parecky - dodavatel Slezak');
INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 1, 'Uzena Rolka', 'Uzena rolka z Prahy');
INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 1, 'Veprove koleno', 'Veprove koleno');

INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 2, 'Jogurt nizkotucny', 'Vyrobce Madeta');
INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 2, 'Mleko plnotucne', 'Mleko z Horni Trebove');
INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 2, 'Kakaove mleko', 'Mleko s kakaem');
INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 2, 'Termix cokoladovy', 'Termix plny cokolady');
INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 2, 'Termix vanilkovy', 'Termix plny vanilky');

INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 3, 'Cokolada Milka', 'Cokolada Milka z Alp');
INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 3, 'Karamely', 'Karamely 100g baleni');
INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 3, 'Bonpary', 'Bonpary - orion');

INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 4, 'Rohlik', 'Krupave rohliky');
INSERT INTO zbozi(id, kategorie_id, nazev, popis) VALUES(DEFAULT, 4, 'Houska', 'Houska s makem');

INSERT INTO prodej(zbozi_id, kusu, cena_za_kus, datum) VALUES( 4, 1000, 10.0, '2007-01-01');
INSERT INTO prodej(zbozi_id, kusu, cena_za_kus, datum) VALUES(10, 2000,  4.0, '2007-01-01');
INSERT INTO prodej(zbozi_id, kusu, cena_za_kus, datum) VALUES( 9, 1200,  2.8, '2007-01-01');
INSERT INTO prodej(zbozi_id, kusu, cena_za_kus, datum) VALUES( 4,  213, 10.2, '2007-01-01');
INSERT INTO prodej(zbozi_id, kusu, cena_za_kus, datum) VALUES(10,  120,  4.3, '2007-01-01');
INSERT INTO prodej(zbozi_id, kusu, cena_za_kus, datum) VALUES( 9,  143,  2.9, '2007-01-01');
INSERT INTO prodej(zbozi_id, kusu, cena_za_kus, datum) VALUES( 1,  100, 63.9, '2007-01-01');
INSERT INTO prodej(zbozi_id, kusu, cena_za_kus, datum) VALUES( 2,   13, 78.3, '2007-01-01');