CREATE TABLE dodavatel ( id_dodavatela NUMBER(3) NOT NULL, obchodne_meno VARCHAR2(25) NOT NULL, ICO NUMBER(8) NOT NULL, meno_zast_osoby VARCHAR2(15) NOT NULL, priezvisko_zast_osoby VARCHAR2(15) NOT NULL, titul_zast_osoby VARCHAR2(10), adresa VARCHAR2(30) NOT NULL, mesto VARCHAR2(20) NOT NULL, telefon VARCHAR2(15), email VARCHAR2(30), PRIMARY KEY (id_dodavatela)); DROP TABLE zakaznik; DROP TABLE dodavatel; DROP TABLE zakazky; DROP TABLE nabytok; DROP TABLE sklad; DROP TABLE nabytok_na_zakazke; DROP TABLE nabytok_na_sklade; CREATE TABLE zakaznik ( id_zakaznika NUMBER(3) NOT NULL, meno VARCHAR2(15) NOT NULL, priezvisko VARCHAR2(15) NOT NULL, titul VARCHAR2(10), adresa VARCHAR2(30) NOT NULL, mesto VARCHAR2(20) NOT NULL, telefon VARCHAR2(15), email VARCHAR2(30), PRIMARY KEY (id_zakaznika)); INSERT INTO zakaznik VALUES('1','Juraj','Smolej','Ing.','Pecnianska 33','Bratislava','0905516160','uriah@centrum.sk'); INSERT INTO zakaznik VALUES('2','Milan','Bednar','Mgr.','Modranska 25','Trnava','0908552544','bednar@yahoo.sk'); INSERT INTO zakaznik VALUES('3','Peter','Cihan','Ing.','Frana Krala 5','Bratislava','0904556541','cihan@azet.sk'); INSERT INTO zakaznik VALUES('4','Radovan','Drozd','Ing.','Lucenecka 23','Bratislava','0902633254','drozd@centrum.sk'); INSERT INTO zakaznik VALUES('5','Michal','Kiraly','JUDr.','Holleho 23','Bernolakovo','0905456555','kiraly@hotmail.com'); INSERT INTO zakaznik VALUES('6','Ronald','Konig','Ing.','Dunajska 73','Ivanka pri Dunaji','0907988999','konig@post.sk'); INSERT INTO zakaznik VALUES('7','Peter','Kostelansky','','Polianky 1','Malacky','0905552144','kostel@pobox.sk'); INSERT INTO zakaznik VALUES('8','Stanislav','Kovacik','','Spojova 21','Bratislava','0903565566','kovacik@pobox.sk'); INSERT INTO zakaznik VALUES('9','Juraj','Lichtner','','Krivanska 30','Bratislava','0908787741','lichtner@pobox.sk'); INSERT INTO zakaznik VALUES('10','Nada','Hamalova','','Krikova 7','Trnava','0905996332','hamalovao@centrum.sk'); CREATE TABLE dodavatel ( id_dodavatela NUMBER(3) NOT NULL, obchodne_meno VARCHAR2(25) NOT NULL, ICO NUMBER(8) NOT NULL, meno_zast_osoby VARCHAR2(15) NOT NULL, priezvisko_zast_osoby VARCHAR2(15) NOT NULL, titul_zast_osoby VARCHAR2(10), adresa VARCHAR2(30) NOT NULL, mesto VARCHAR2(20) NOT NULL, telefon VARCHAR2(15), email VARCHAR2(30), PRIMARY KEY (id_dodavatela)); INSERT INTO dodavatel VALUES('1','ALFA','16454522','Maria','Grancova',' Mgr.','Bzovicka 9',' Bratislava','45646544','alfa@alfa.sk'); INSERT INTO dodavatel VALUES('2','BETA','45524411','Gustav','Marosi','','Lubovniansky 14','Trnava','25632541','beta@beta.sk'); INSERT INTO dodavatel VALUES('3','GAMA','85214521','Jozef','Novak',' Ing.','Romanova 44','Kosice','35265412','gama@gama.sk'); INSERT INTO dodavatel VALUES('4','DELTA','89656554','Alexander ','Eichner','Mgr.','Hlavna 10',' Bratislava','63258521','delta@delta.sk'); INSERT INTO dodavatel VALUES('5','EPSILON','84554561','Fedor','Fabian',' Ing.','Zelena 5',' Bratislava','65222141','epsilon@epsilon.sk'); INSERT INTO dodavatel VALUES('6','DZETA','76854354','Viliam','Kacz','','Holubkova 66',' Bratislava','63252142','dzeta@dzeta.sk'); INSERT INTO dodavatel VALUES('7','ETA','54656445','Milan','Kadlec',' Ing.','Trnavska 45','Trencin','66652142','eta@eta.sk'); INSERT INTO dodavatel VALUES('8','THETA','64532133','Arnold','Sivak','','Bratislavska 1/A',' Bratislava','88454112','theta@theta.sk'); INSERT INTO dodavatel VALUES('9','IOTA','54453122','Gabriel','Vlasak','Mgr.','Dunajska 6','Trnava','95652145','iota@iota.sk'); INSERT INTO dodavatel VALUES('10','KAPA','54534535','Jan','Vlcek','Mgr.','Hrozna 78','Trencin','65621451','kapa@kapa.sk'); CREATE TABLE nabytok ( oznacenie_nabytku VARCHAR2(10) NOT NULL, id_dodavatela NUMBER(3) NOT NULL, druh_nabytku VARCHAR2(30), nazov_nabytku VARCHAR2(30) NOT NULL, skladova_cena NUMBER(7,2) NOT NULL, popis VARCHAR(30), primary key (oznacenie_nabytku), foreign key (id_dodavatela) references dodavatel(id_dodavatela)); INSERT INTO nabytok VALUES('K1','1','Kuchynska linka','MAJKA','32000','drevo-buk'); INSERT INTO nabytok VALUES('K2','1',' Kuchynska linka','ZORA','65000','drevo-dub'); INSERT INTO nabytok VALUES('K3','1',' Kuchynska linka','ZUZKA','55000','drevo-dub'); INSERT INTO nabytok VALUES('K4','2',' Kuchynska linka','VIERKA','44000','plast'); INSERT INTO nabytok VALUES('KOB','5','Koberec','TUDOR','3000','tkany'); INSERT INTO nabytok VALUES('P1','8','Postel','NADA','4000','ulozny priestor'); INSERT INTO nabytok VALUES('P2', '8','Postel','BORA','3000','bez ulozeneho priestoru'); INSERT INTO nabytok VALUES('ROL1', '10','Vstavane skrine','ROLIDOR','36000','rolovacie skrine, drevo'); INSERT INTO nabytok VALUES('S1', '3','Stol','KAROL','2000','drevo'); INSERT INTO nabytok VALUES('S2', '3','Stol','JURAJ','3000','kov'); INSERT INTO nabytok VALUES('SED1', '9','Sedacia suprava','MARA','60000','koza'); INSERT INTO nabytok VALUES('SED2', '9','Sedacia suprava','BARA','23000','kozenka'); INSERT INTO nabytok VALUES('SKR1', '4','Skrine','DVOJICKY','12000','drevo'); INSERT INTO nabytok VALUES('ST1', '6','Stolicka','EDVA I','500','plast'); INSERT INTO nabytok VALUES('ST2', '6',' Stolicka','EDVA II','600','plast'); INSERT INTO nabytok VALUES('ST3', '6',' Stolicka','EDVA III','700','plast'); INSERT INTO nabytok VALUES('ST4', '7',' Stolicka','EVA I','1000','drevo'); INSERT INTO nabytok VALUES('ST5', '7',' Stolicka','EVA II','1200','drevo'); CREATE TABLE zakazky ( id_zakazky NUMBER(3) NOT NULL, id_zakaznika NUMBER(3) NOT NULL, datum_prijatia DATE, datum_vybavenia DATE, datum_zaplatenia DATE, primary key (id_zakazky), foreign key (id_zakaznika) references zakaznik(id_zakaznika)); INSERT INTO zakazky VALUES('1','1','20.03.2004',' 10.04.2004','10.04.2004'); INSERT INTO zakazky VALUES('2','3','21.03.2004','05.04.2004','07.04.2004'); INSERT INTO zakazky VALUES('3','5','21.03.2004','05.04.2004','05.04.2004'); INSERT INTO zakazky VALUES('4','8','24.03.2004','13.04.2004',''); INSERT INTO zakazky VALUES('5','3','24.03.2004','25.03.2004','26.03.2004'); INSERT INTO zakazky VALUES('6','3','26.03.2004','01.04.2004','01.04.2004'); INSERT INTO zakazky VALUES('7','5','27.03.2004','02.04.2004','02.04.2004'); INSERT INTO zakazky VALUES('8','6','01.04.2004','01.04.2004','01.04.2004'); CREATE TABLE sklad ( oznacenie_skladu NUMBER(3) NOT NULL, lokalita VARCHAR2(20) NOT NULL, primary key (oznacenie_skladu)); INSERT INTO sklad VALUES('1','Petrzalka'); INSERT INTO sklad VALUES('2','Vrakuna'); INSERT INTO sklad VALUES('3','Podunajske Biskupice'); INSERT INTO sklad VALUES('4','Ivanka pri Dunaji'); CREATE TABLE nabytok_na_sklade ( oznacenie_skladu NUMBER(3) NOT NULL, oznacenie_nabytku VARCHAR2(10) NOT NULL, pocet_ks_sklad NUMBER(5), primary key (oznacenie_skladu, oznacenie_nabytku)); INSERT INTO nabytok_na_sklade VALUES('1','K1','5'); INSERT INTO nabytok_na_sklade VALUES('1','K2','5'); INSERT INTO nabytok_na_sklade VALUES('1','K3','4'); INSERT INTO nabytok_na_sklade VALUES('1','K4','3'); INSERT INTO nabytok_na_sklade VALUES('2','KOB','15'); INSERT INTO nabytok_na_sklade VALUES('2','ROL1','10'); INSERT INTO nabytok_na_sklade VALUES('2','SKR1','3'); INSERT INTO nabytok_na_sklade VALUES('3','P1','9'); INSERT INTO nabytok_na_sklade VALUES('3','P2','8'); INSERT INTO nabytok_na_sklade VALUES('3','S1','14'); INSERT INTO nabytok_na_sklade VALUES('3','S2','11'); INSERT INTO nabytok_na_sklade VALUES('3','ST1','65'); INSERT INTO nabytok_na_sklade VALUES('3','ST2','25'); INSERT INTO nabytok_na_sklade VALUES('3','ST3','45'); INSERT INTO nabytok_na_sklade VALUES('3','ST4','58'); INSERT INTO nabytok_na_sklade VALUES('3','ST5','33'); INSERT INTO nabytok_na_sklade VALUES('4','SED1','25'); INSERT INTO nabytok_na_sklade VALUES('4','SED2','22'); CREATE TABLE nabytok_na_zakazke ( id_zakazky NUMBER(3) NOT NULL, oznacenie_nabytku VARCHAR2(10) NOT NULL, pocet_ks_zakazka NUMBER(5) NOT NULL, predajna_cena_ks NUMBER(8,2) NOT NULL, primary key (id_zakazky, oznacenie_nabytku)); INSERT INTO nabytok_na_zakazke VALUES('1','K1','1','41000'); INSERT INTO nabytok_na_zakazke VALUES('2','KOB','1','5000'); INSERT INTO nabytok_na_zakazke VALUES('3','K2','1','75000'); INSERT INTO nabytok_na_zakazke VALUES('4','K3','1','66000'); INSERT INTO nabytok_na_zakazke VALUES('5','K4','1','50000'); INSERT INTO nabytok_na_zakazke VALUES('6','ST1','2','600'); INSERT INTO nabytok_na_zakazke VALUES('7','ST2','4','800'); INSERT INTO nabytok_na_zakazke VALUES('8','SED1','1','100000'); INSERT INTO nabytok_na_zakazke VALUES('8','SED2','2','35000'); Výstup tabuliek: ZAKAZNIK id_zakaznika meno priezvisko titul adresa mesto telefon e-mail 1 Juraj Smolej Ing. Pecnianska 33 Bratislava 0905516160 uriah@centrum.sk 2 Milan Bednár Mgr. Modranská 25 Trnava 0908552544 bednar@yahoo.com 3 Peter Cihan Ing. Frana Krála 5 Bratislava 0904556541 cihan@azet.sk 4 Radovan Drozd Ing. Lucenecká 23 Bratislava 0902633254 drozd@centrum.sk 5 Michal Király JUDr. Hollého 23 Bernolákovo 0905456555 kiraly@hotmail.com 6 Ronald Konig Ing. Dunajská 73 Ivanka pri Dunaji 0907988999 konig@post.sk 7 Peter Kostelanský Polianky 1 Malacky 0905552144 kostel@pobox.sk 8 Stanislav Kovácik Spojová 21 Bratislava 0903565566 kovacik@pobox.sk 9 Juraj Lichtner Krivanská 30 Bratislava 0908787741 lichtner@pobox.sk 10 Nada Hamalová Kríková 7 Trnava 0905996332 hamalova@centrum.sk DODAVATEL id_dodavatela obchodne_meno ICO meno_zast_osoby priezvisko_zast_osoby titul_zast_osoby adresa mesto telefon e-mail 1 ALFA 16454522 Maria Grancova Mgr. Bzovícka 9 Bratislava 45646544 alfa@alfa.sk 2 BETA 45524411 Gustav Marosi Lubovnianska 14 Trnava 25632541 beta@beta.sk 3 GAMA 85214521 Jozef Novak Ing. Romanova 44 Košice 35265412 gama@gama.sk 4 DELTA 89656554 Alexander Eichner Mgr. Hlavná 10 Bratislava 63258521 delta@delta.sk 5 EPSILON 84554561 Fedor Fabian Ing. Zelená 5 Bratislava 65222141 epsilon@epsilon.sk 6 DZETA 76854354 Viliam Kacz Holúbková 66 Bratislava 63252142 dzeta@dzeta.sk 7 ETA 54656445 Milan Kadlec Ing. Trnavská 45 Trencín 66652142 eta@eta.sk 8 THETA 64532133 Arnold Sivak Bratislavská 1/A Bratislava 88454112 theta@theta.sk 9 IOTA 54453122 Gabriel Vlasak Mgr. Dunajská 6 Trnava 95652145 iota@iota.sk 10 KAPA 54534535 Jan Vlcek Mgr. Hrozná 78 Trencín 65621451 kapa@kapa.sk NABYTOK oznacenie_nabytku id_dodavatela druh_nabytku nazov_nabytku skladova_cena popis K1 1 Kuchynská linka MAJKA 32 000,00 Sk drevo - buk K2 1 Kuchynská linka ZORA 65 000,00 Sk drevo - dub K3 1 Kuchynská linka ZUZKA 55 000,00 Sk drevo - dub K4 2 Kuchynská linka VIERKA 44 000,00 Sk plast KOB 5 Koberec TUDOR 3 000,00 Sk tkaný P1 8 Postel NADA 4 000,00 Sk úložný priestor P2 8 Postel BORA 3 000,00 Sk bez úložného priestoru ROL1 10 Vstavané skrine ROLIDOR 36 000,00 Sk rolovacie skrine, drevo S1 3 Stôl KAROL 2 000,00 Sk drevo S2 3 Stôl JURAJ 3 000,00 Sk kov SED1 9 Sedacia súprava MARA 60 000,00 Sk koža SED2 9 Sedacia súprava BARA 23 000,00 Sk koženka SKR1 4 Skrine DVOJICKY 12 000,00 Sk drevo ST1 6 Stolicka EDVA I 500,00 Sk plast ST2 6 Stolicka EDVA II 600,00 Sk plast ST3 6 Stolicka EDVA III 700,00 Sk plast ST4 7 Stolicka EVA I 1 000,00 Sk drevo ST5 7 Stolicka EVA II 1 200,00 Sk drevo ZAKAZKY id_zakazky id_zakaznika datum_prijatia datum_vybavenia datum_zaplatenia 1 1 20. 3. 2004 10. 4. 2004 10. 4. 2004 2 3 21. 3. 2004 5. 4. 2004 7. 4. 2004 3 5 21. 3. 2004 5. 4. 2004 5. 4. 2004 4 8 24. 3. 2004 13. 4. 2004 5 3 24. 3. 2004 25. 3. 2004 26. 3. 2004 6 3 26. 3. 2004 1. 4. 2004 1. 4. 2004 7 5 27. 3. 2004 2. 4. 2004 2. 4. 2004 8 6 1. 4. 2004 1. 4. 2004 1. 4. 2004 SKLAD oznacenie_skladu lokalita 1 Petržalka 2 Vrakuna 3 Podunajské Biskupice 4 Ivanka pri Dunaji NABYTOK_NA_SKLADE oznacenie_skladu oznacenie_nabytku pocet_ks_sklad 1 K1 5 1 K2 5 1 K3 4 1 K4 3 2 KOB 15 2 ROL1 10 2 SKR1 3 3 P1 9 3 P2 8 3 S1 14 3 S2 11 3 ST1 65 3 ST2 25 3 ST3 45 3 ST4 58 3 ST5 33 4 SED1 25 4 SED2 22 NABYTOK_NA_ZAKAZKE id_zakazky oznacenie_nabytku pocet_ks_zakazka predajna_cena_ks 1 K1 1 41 000,00 Sk 2 KOB 1 5 000,00 Sk 3 K2 1 75 000,00 Sk 4 K3 1 66 000,00 Sk 5 K4 1 50 000,00 Sk 6 ST1 2 600,00 Sk 7 ST2 4 800,00 Sk 8 SED1 1 100 000,00 Sk 8 SED2 2 35 000,00 Sk Dotazy v relacnej algebre a v SQL: 1. Vypíš mená a priezviská všetkých zákazníkov V1 ? p meno, priezvisko ZÁKAZNÍK SELECT ZK.meno, ZK.priezvisko FROM ZAKAZNIK ZK; meno priezvisko Juraj Smolej Milan Bednár Peter Cihan Radovan Drozd Michal Király Ronald Konig Peter Kostelanský Stanislav Kovácik Juraj Lichtner Nada Hamalová 2. Vypíš druh a názov všetkých nábytkov, ktoré firma ponúka: V1 ? p druh_nábytku, názov_nábytku NÁBYTOK SELECT N.druh_nabytku, N.nazov_nabytku FROM NABYTOK N; druh_nabytku nazov_nabytku Kuchynská linka MAJKA Kuchynská linka ZORA Kuchynská linka ZUZKA Kuchynská linka VIERKA Koberec TUDOR Postel NADA Postel BORA Vstavané skrine ROLIDOR Stôl KAROL Stôl JURAJ Sedacia súprava MARA Sedacia súprava BARA Skrine DVOJICKY Stolicka EDVA I Stolicka EDVA II Stolicka EDVA III Stolicka EVA I Stolicka EVA II 3. Vypíš druh a názov všetkých nábytkov na sklade 3: V1 ? s oznacenie_skladu = ´3´ NÁBYTOK_NA_SKLADE V2 ? V1 * NÁBYTOK V3 ? p druh_nábytku, názov_nábytku V2 SELECT N.druh_nabytku, N.nazov_nabytku FROM NABYTOK N INNER JOIN NABYTOK_NA_SKLADE NS ON N.oznacenie_nabytku=NS.oznacenie_nabytku WHERE NS.oznacenie_skladu='3'; druh_nabytku nazov_nabytku Postel NADA Postel BORA Stôl KAROL Stôl JURAJ Stolicka EDVA I Stolicka EDVA II Stolicka EDVA III Stolicka EVA I Stolicka EVA II 4. Zisti pocet kusov kuchynskej linky ZUZKA na sklade: V1 ? s názov_nábytku = ´ZUZKA´ NÁBYTOK V2 ? V1 * NÁBYTOK_NA_SKLADE V3 ? p pocet_ks_sklad V2 SELECT NS.pocet_ks_sklad FROM NABYTOK N INNER JOIN NABYTOK_NA_SKLADE NS ON N.oznacenie_nabytku=NS.oznacenie_nabytku WHERE N.nazov_nabytku='ZUZKA'; pocet_ks_sklad 4 5. Zisti lokalitu skladu, v ktorom je nábytok, ktorý dodala firma GAMA: V1 ? s obchodné_meno = ´GAMA´ DODÁVATEL V2 ? V1 * NÁBYTOK V3 ? V2 * NÁBYTOK_NA_SKLADE V4 ? V3 * SKLAD V5 ? p lokalita V4 SELECT DISTINCT S.lokalita FROM ((SKLAD S INNER JOIN NABYTOK_NA_SKLADE NS ON S.oznacenie_skladu=NS.oznacenie_skladu) INNER JOIN NABYTOK N ON NS.oznacenie_nabytku=N.oznacenie_nabytku) INNER JOIN DODAVATEL D ON N.id_dodavatela=D.id_dodavatela WHERE D.obchodne_meno='GAMA'; lokalita Podunajské Biskupice 6. Zisti priezvisko a telefón neplaticov: V1 ? s dátum_zaplatenia = NULL ZÁKAZKY V2 ? V1 * ZÁKAZNÍK V3 ? p priezvisko, telefón V2 SELECT ZK.priezvisko, ZK.telefon FROM ZAKAZKY Z INNER JOIN ZAKAZNIK ZK ON Z.id_zakaznika=ZK.id_zakaznika WHERE Z.datum_zaplatenia Is Null; priezvisko telefon Kovácik 0903565566 7. Vyber druh,názov a cenu nábytku s najvyššou skladovou cenou: V1 ? p druh_nabytku, nazov_nabytku, skladova_cena NABYTOK V2 ozancenie_nabytku,max ? oznacenie_nabytku c MAX(skladova_cena) V1 V3 ? s max V2 SELECT druh_nabytku, nazov_nabytku, skladova_cena FROM NABYTOK WHERE skladova_cena=(select MAX(skladova_cena) from NABYTOK); druh_nabytku nazov_nabytku nakupna_cena Kuchynská linka ZORA 65 000,00 Sk 8. Zisti priemernú cenu všetkých nábytkov, ktoré sú na sklade v Petržalke: V1 ? s lokalita='Petrzalka' SKLAD V2 ? V1 * NABYTOK_NA_SKLADE V3 ? V2 * NABYTOK V4 oznacenie_nabytku,avg ? oznacenie_nabytku c AVG(skladova_cena) V3 V5 ? p avg V4 SELECT Avg(N.skladova_cena) AS Priemerna_cena FROM (NABYTOK_NA_SKLADE NS INNER JOIN NABYTOK N ON NS.oznacenie_nabytku = N.oznacenie_nabytku) INNER JOIN SKLAD S ON NS.oznacenie_skladu = S.oznacenie_skladu GROUP BY S.lokalita HAVING S.lokalita='Petrzalka'; Priemerna_cena 49 000,00 Sk 9. Zisti meno a priezvisko zákazníka (každého iba raz), ktorý zaplatil hned pri vybavení jeho zákazky, v den vybavenia jeho zákazky: V1 ? s datum_vybavenia=datum_zaplatenia ZAKAZKY V2 ? V1 * ZAKAZNIK V3 ? p meno,priezvisko V2 SELECT DISTINCT ZK.meno, ZK.priezvisko FROM ZAKAZKY Z INNER JOIN ZAKAZNIK ZK ON Z.id_zakaznika = ZK.id_zakaznika WHERE Z.datum_vybavenia=Z.datum_zaplatenia; meno priezvisko Juraj Smolej Michal Király Peter Cihan Ronald Konig 10. Zisti meno,priezvisko a pocet zákaziek, ktoré zákazník má: V1 ? ZAKAZKY * ZAKAZNIK V2 id_zakazky,count ? id_zakazky c COUNT(id_zakazky) V1 V3 ? p meno,priezvisko,count V2 SELECT ZK.meno, ZK.priezvisko, Count(Z.id_zakazky) AS Pocet_zakazok FROM ZAKAZKY Z INNER JOIN ZAKAZNIK ZK ON ZK.id_zakaznika = Z.id_zakaznika GROUP BY ZK.meno, ZK.priezvisko; meno priezvisko Pocet_zakazok Juraj Smolej 1 Michal Király 2 Peter Cihan 3 Ronald Konig 1 Stanislav Kovácik 1 11. Vyber druh a názov nábytku, ktorý je na zákazkách najpocetnejší: V1 ? NABYTOK_NA_ZAKAZKE * NABYTOK V2 id_zakazky,max_pocet ? id_zakazky c MAX (pocet_ks_zakazka) V1 V3 ? p druh_nabytku,nazov_nabytku,max_pocet V2 V4 ? s max_pocet V3 SELECT DISTINCT N.druh_nabytku,N.nazov_nabytku,NZ.pocet_ks_zakazka AS Max_pocet FROM NABYTOK N INNER JOIN NABYTOK_NA_ZAKAZKE NZ ON N.oznacenie_nabytku=NZ.oznacenie_nabytku WHERE NZ.pocet_ks_zakazka=(SELECT MAX(NZ.pocet_ks_zakazka) FROM NABYTOK_NA_ZAKAZKE NZ INNER JOIN NABYTOK N ON NZ.oznacenie_nabytku = N.oznacenie_nabytku); druh_nabytku nazov_nabytku Max_pocet Stolicka EDVA II 4 12. Vypocítaj sumu penazí, ktoré nám boli doteraz za všetky tovary zaplatené: V1 ? NABYTOK_NA_ZAKAZKE * ZAKAZKY V2 ? s datum_zaplatenia is not null V1 V3 id_zakazky,Income ? id_zakazky c SUM(predajna_cena_ks) V2 V4 ? p Income V3 SELECT SUM(predajna_cena_ks) AS Income FROM NABYTOK_NA_ZAKAZKE NZ INNER JOIN ZAKAZKY Z ON NZ.id_zakazky = Z.id_zakazky WHERE Z.datum_zaplatenia is not null; Income 307 400,00 Sk 13. Zisti sumu penazí, ktorá predstavuje súcet skladových cien tovarov, ktoré si zákazníci objednali, a za ktoré aj zaplatili: V1 ? NABYTOK_NA_ZAKAZKE * NABYTOK V2 ? V1 * ZAKAZKY V3 ? s datum_zaplatenia is not null V2 V4 oznacenie_nabytku,Suma ? oznacenie_nabytku c SUM(skladova_cena) V3 V5 ? p Income V4 SELECT SUM(skladova_cena) AS Suma FROM (NABYTOK N INNER JOIN NABYTOK_NA_ZAKAZKE NZ ON N.oznacenie_nabytku=NZ.oznacenie_nabytku) INNER JOIN ZAKAZKY Z ON NZ.id_zakazky=Z.id_zakazky WHERE Z.datum_zaplatenia is not null; Suma 228 100,00 Sk 14. Vypocítaj doterajší zisk firmy FASTWEB: V1 ? NABYTOK_NA_ZAKAZKE * NABYTOK V2 ? V1 * ZAKAZKY V3 ? s datum_zaplatenia is not null V2 V4 oznacenie_nabytku,Zisk ? oznacenie_nabytku c SUM(predajna_cena - skladova_cena) V3 V5 ? p Zisk V4 SELECT SUM(NZ.predajna_cena_ks-N.skladova_cena) AS Zisk FROM (NABYTOK N INNER JOIN NABYTOK_NA_ZAKAZKE NZ ON N.oznacenie_nabytku=NZ.oznacenie_nabytku) INNER JOIN ZAKAZKY Z ON NZ.id_zakazky=Z.id_zakazky WHERE Z.datum_zaplatenia is not null; Zisk 79 300,00 Sk 15. Vypíš všetky lokality skladov a ku každému zisti pocet druhov nábytku, ktoré sa v nom nachádzajú: V1 ? NABYTOK_NA_SKLADE * SKLAD V2 oznacenie_skladu,Pocet_druhov_nabytku ? oznacenie_skladu c COUNT(oznacenie_skladu) V1 V3 ? p lokalita,Pocet_druhov_nabytku V2 V4 ? s Pocet_druhov_nabytku V3 SELECT S.lokalita,COUNT(NS.oznacenie_skladu) AS Pocet_druhov_nab FROM NABYTOK_NA_SKLADE NS INNER JOIN SKLAD S ON NS.oznacenie_skladu=S.oznacenie_skladu GROUP BY S.lokalita; lokalita Pocet_druhov_nab Ivanka pri Dunaji 2 Petržalka 4 Podunajské Biskupice 9 Vrakuna 3 16. Vypíš meno, priezvisko, id_zakazky a cas vybavenia zákazky zákazníka, ktorý najdlhšie cakal na vybavenie: V1 ? ZAKAZKY * ZAKAZNIK V2 id_zakazky,Cas_vybavenia ? id_zakazky c MAX(datum_vybavenia – datum_prijatia) V1 V3 ? p meno,priezvisko,id_zakazky,(datum_vybavenia – datum_prijatia) V2 SELECT ZK.meno,ZK.priezvisko,Z.id_zakazky,Z.datum_vybavenia-Z.datum_prijatia AS Cas_vybavenia FROM ZAKAZKY Z INNER JOIN ZAKAZNIK ZK ON Z.id_zakaznika=ZK.id_zakaznika WHERE Z.datum_vybavenia-Z.datum_prijatia=(SELECT MAX(Z.datum_vybavenia-Z.datum_prijatia) FROM (ZAKAZKY Z INNER JOIN ZAKAZNIK ZK ON Z.id_zakaznika=ZK.id_zakaznika)); meno priezvisko id_zakazky Cas_vybavenia Juraj Smolej 1 21 17. Vypíš meno, priezvisko, id_zakazky a cas vybavenia zákazky zákazníka, ktorý najkratšie cakal na vybavenie: V1 ? ZAKAZKY * ZAKAZNIK V2 id_zakazky,Cas_vybavenia ? id_zakazky c MIN(datum_vybavenia – datum_prijatia) V1 V3 ? p meno,priezvisko,id_zakazky,(datum_vybavenia – datum_prijatia) V2 SELECT ZK.meno,ZK.priezvisko,Z.id_zakazky,Z.datum_vybavenia-Z.datum_prijatia AS Cas_vybavenia FROM ZAKAZKY Z INNER JOIN ZAKAZNIK ZK ON Z.id_zakaznika=ZK.id_zakaznika WHERE Z.datum_vybavenia-Z.datum_prijatia=(SELECT MIN(Z.datum_vybavenia-Z.datum_prijatia) FROM (ZAKAZKY Z INNER JOIN ZAKAZNIK ZK ON Z.id_zakaznika=ZK.id_zakaznika)); meno priezvisko id_zakazky Cas_vybavenia Ronald Konig 8 0 18. Zisti priemerný cas vybavovania zákaziek: V1 id_zakazky,Priem_cas_vybavenia ? id_zakazky c AVG(datum_vybavenia – datum_prijatia) ZAKAZKY V2 ? p Priem_cas_vybavenia V1 SELECT AVG(datum_vybavenia-datum_prijatia) AS Priem_cas_vybavenia FROM ZAKAZKY ; Priem_cas_vybavenia 10,5 19. Vypíš mená firiem (každú iba raz), ktoré dodali nábytok, ktorý je na zákazke, ktorej cas vybavenia je menší ako 5 dní: V1 ? DODAVATEL * NABYTOK V2 ? V1 * NABYTOK_NA_ZAKAZKE V3 ? V2 * ZAKAZKY V4 ? s (datum_vybavenia – datum_prijatia) < 5 V3 V5 ? p obchodne_meno V4 SELECT DISTINCT D.obchodne_meno FROM ((DODAVATEL D INNER JOIN NABYTOK N ON D.id_dodavatela=N.id_dodavatela) INNER JOIN NABYTOK_NA_ZAKAZKE NZ ON N.oznacenie_nabytku=NZ.oznacenie_nabytku) INNER JOIN ZAKAZKY Z ON NZ.id_zakazky=Z.id_zakazky WHERE (Z.datum_vybavenia-Z.datum_prijatia)<5; obchodne_meno BETA IOTA 20. Vypíš meno,priezvisko a adresu zákazníkov, ktorí majú na zákazke viac ako jeden druh nábytku: V1 ? ZAKAZKY * ZAKAZNIK V2 ? V1 * NABYTOK_NA_ZAKAZKE V3 id_zakazky,count ? id_zakazky c COUNT(*) V2 V4 ? s count > 1 V3 V5 ? p meno,priezvisko,adresa V4 SELECT DISTINCT ZK.meno,ZK.priezvisko,ZK.adresa,ZK.mesto FROM (ZAKAZNIK ZK INNER JOIN ZAKAZKY Z ON ZK.id_zakaznika=Z.id_zakaznika) INNER JOIN NABYTOK_NA_ZAKAZKE NZ ON Z.id_zakazky=NZ.id_zakazky WHERE NZ.id_zakazky=(SELECT NZ.id_zakazky FROM NABYTOK_NA_ZAKAZKE NZ GROUP BY NZ.id_zakazky HAVING COUNT(*)>1); meno priezvisko adresa mesto Ronald Konig Dunajská 73 Ivanka pri Dunaji 21. Vypíš druh a názov nábytku, z ktorého ubudlo (datum_vybavenia) na sklade v období od 30.03.2004 do 06.04.2004, a uved aj ostávajúci pocet ks po ubudnutí: V1 ? NABYTOK * NABYTOK_NA_SKLADE V2 ? V1 * NABYTOK_NA_ZAKAZKE V3 ? V2 * ZAKAZKY V4 ? s datum_vybavenia < '06.04.2004' AND datum_vybavenia > '30.03.2004' V3 V5 ? p druh_nabytku,nazov_nabytku,(pocet_ks_sklad – pocet_ks_zakazka) V4 SELECT N.druh_nabytku, N.nazov_nabytku, (NS.pocet_ks_sklad-NZ.pocet_ks_zakazka) AS Ostava FROM ((NABYTOK N INNER JOIN NABYTOK_NA_SKLADE NS ON N.oznacenie_nabytku = NS.oznacenie_nabytku) INNER JOIN NABYTOK_NA_ZAKAZKE NZ ON NS.oznacenie_nabytku = NZ.oznacenie_nabytku) INNER JOIN ZAKAZKY Z ON NZ.id_zakazky = Z.id_zakazky WHERE Z.datum_vybavenia < '06.04.2004' AND Z.datum_vybavenia > '30.03.2004'; druh_nabytku nazov_nabytku Ostava Koberec TUDOR 14 Kuchynská linka ZORA 4 Stolicka EDVA I 63 Stolicka EDVA II 21 Sedacia súprava MARA 24 Sedacia súprava BARA 20