SELECT * from (SELECT count(*) kartou from prodeje where cena_celkem<>round(cena_celkem)), (select count(*) hotove from (SELECT x.id_prodeje from prodeje x where cena_celkem=round(cena_celkem) Minus select mp.id_prodeje from (SELECT sum(cena*pocet_kusu) cena, p.id_prodeje from prodeje p join polozky_prodeje pp on (p.id_prodeje=pp.id_prodeje) join produkty pr on(pr.id_produkty=pp.id_produkty) join nabidky n on (pr.id_produkty=n.id_produkty) join oddeleni o on (n.id_oddeleni=o.id_oddeleni) where o.id_pobocky=p.id_pobocky and cas_prodeje between n.platnost_od and n.platnost_do group by p.id_prodeje) mp join prodeje on (mp.id_prodeje=prodeje.id_prodeje) where cena=cena_celkem)), (select count(*) nelze_urcit from (SELECT sum(cena*pocet_kusu) cena, p.id_prodeje from prodeje p join polozky_prodeje pp on (p.id_prodeje=pp.id_prodeje) join produkty pr on(pr.id_produkty=pp.id_produkty) join nabidky n on (pr.id_produkty=n.id_produkty) join oddeleni o on (n.id_oddeleni=o.id_oddeleni) where o.id_pobocky=p.id_pobocky and cas_prodeje between n.platnost_od and n.platnost_do group by p.id_prodeje) mp join prodeje on (mp.id_prodeje=prodeje.id_prodeje) where cena=cena_celkem) Select den, x.pobocka, zisk from ( (SELECT den, pobocka,sum(cena_celkem) zisk from (SELECT cena_celkem, to_char(cas_prodeje, 'dd.mm.yy') den, nazev pobocka from prodeje p join pobocky po on (p.id_pobocky=po.id_pobocky)) group by den,pobocka)) x where zisk= (select max(zisk) from (SELECT den, pobocka,sum(cena_celkem) zisk from (SELECT cena_celkem, to_char(cas_prodeje, 'dd.mm.yy') den, nazev pobocka from prodeje p join pobocky po on (p.id_pobocky=po.id_pobocky)) group by den,pobocka) where pobocka=x.pobocka) WITH denni_zisky AS( SELECT pobocky.nazev pobocka, trunc(cas_prodeje) den, sum((cena-porizovaci_cena)*pocet_kusu) zisk FROM produkty JOIN polozky_prodeje ON(polozky_prodeje.id_produkty=produkty.id_produkty) JOIN prodeje USING(id_prodeje) JOIN pobocky USING(id_pobocky) JOIN oddeleni USING(id_pobocky) JOIN nabidky ON (nabidky.id_oddeleni= oddeleni.id_oddeleni AND trunc(cas_prodeje) BETWEEN platnost_od AND platnost_do AND produkty.id_produkty= nabidky.id_produkty) GROUP BY pobocky.nazev, trunc(cas_prodeje)) SELECT pobocka, to_char(den,'dd. mm. yyyy') den, zisk FROM denni_zisky a WHERE zisk = (SELECT max(zisk) FROM denni_zisky b WHERE a.pobocka=b.pobocka) Vypište názvy, zemi původu a název producenta všech neasijských produktů, které vyrobili producenti, kteří patřili mezi tři nejúspěšnější producenty z hlediska tržeb. WITH produc AS( SELECT id_producenti, sum(pocet_kusu*porizovaci_cena) FROM polozky_prodeje JOIN produkty ON (polozky_prodeje.id_produkty=produkty.id_produkty) JOIN producenti USING (id_producenti) JOIN prodeje USING (id_prodeje) GROUP BY id_producenti ORDER BY sum(pocet_kusu*porizovaci_cena) DESC) SELECT produkty.nazev produkt, producenti.nazev producent, zeme.nazev "země původu" FROM (SELECT * FROM produc WHERE ROWNUM<=3) NATURAL JOIN produkty JOIN zeme USING(id_zeme) JOIN svetadily USING(id_svetadily) JOIN producenti USING (id_producenti) WHERE svetadily.nazev!='Asie' Vypište pořadí českých produktů (název produktu, producent, pořizovací cena, zisk ), podle výše zisku, který přinesly. WITH zisky AS( SELECT produkty.id_produkty, sum(pocet_kusu*(cena-porizovaci_cena)) zisk FROM polozky_prodeje JOIN produkty ON (polozky_prodeje.id_produkty = produkty.id_produkty) JOIN producenti USING (id_producenti) JOIN prodeje USING (id_prodeje) JOIN pobocky USING(id_pobocky) JOIN oddeleni USING(id_pobocky) JOIN nabidky ON (oddeleni.id_oddeleni=nabidky.id_oddeleni AND trunc(cas_prodeje) BETWEEN platnost_od AND platnost_do AND nabidky.id_produkty= produkty.id_produkty) GROUP BY produkty.id_produkty ORDER BY sum(pocet_kusu*(cena-porizovaci_cena)) DESC ) SELECT ROWNUM "pořadí",produkty.nazev produkt, producenti.nazev producent, porizovaci_cena, to_char(zisk,'999999.99') FROM zisky NATURAL JOIN produkty JOIN zeme USING(id_zeme) JOIN producenti USING (id_producenti) WHERE zeme.nazev='Česká republika' Vypište 10 evropských produktů, které přinesly nejvyšší zisk hodonínské pobočce. WITH zisky AS( SELECT produkty.id_produkty, sum(pocet_kusu*(cena-porizovaci_cena)) zisk FROM polozky_prodeje JOIN produkty ON (polozky_prodeje.id_produkty=produkty.id_produkty) JOIN producenti USING (id_producenti) JOIN prodeje USING (id_prodeje) JOIN pobocky USING(id_pobocky) JOIN oddeleni USING(id_pobocky) JOIN nabidky ON (oddeleni.id_oddeleni=nabidky.id_oddeleni AND trunc(cas_prodeje) BETWEEN platnost_od AND platnost_do AND nabidky.id_produkty=produkty.id_produkty) JOIN zeme USING (id_zeme) JOIN svetadily USING (id_svetadily) WHERE svetadily.nazev='Evropa' and pobocky.mesto='Hodonín' GROUP BY produkty.id_produkty ORDER BY sum(pocet_kusu*(cena-porizovaci_cena)) DESC ) SELECT ROWNUM "pořadí",produkty.nazev produkt, producenti.nazev producent, zisk FROM zisky NATURAL JOIN produkty JOIN producenti USING (id_producenti) where rownum<=10