SQL .

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 9;,'Smolej','Ing. 9;,'Pecnianska 33','Bratislava', 9;0905516160','uriah@centrum .sk');

INSERT INTO zakaznik
VALUES('2','Milan 9;,'Bednar','Mgr. 9;,'Modranska 25','Trnava','09 08552544','bednar@yahoo.sk& #039;);

INSERT INTO zakaznik
VALUES('3','Peter 9;,'Cihan','Ing.' ;,'Frana Krala 5','Bratislava',' ;0904556541','cihan@azet.sk ');

INSERT INTO zakaznik
VALUES('4','Radovan&# 039;,'Drozd','Ing.� 39;,'Lucenecka 23','Bratislava', 9;0902633254','drozd@centrum .sk');

INSERT INTO zakaznik
VALUES('5','Michal� 39;,'Kiraly','JUDr.&# 039;,'Holleho 23','Bernolakovo',� 39;0905456555','kiraly@hotma il.com');

INSERT INTO zakaznik
VALUES('6','Ronald� 39;,'Konig','Ing. 9;,'Dunajska 73','Ivanka pri Dunaji','0907988999', 'konig@post.sk');

INSERT INTO zakaznik
VALUES('7','Peter 9;,'Kostelansky','� 39;,'Polianky 1','Malacky','09 05552144','kostel@pobox.sk& #039;);

INSERT INTO zakaznik
VALUES('8','Stanislav ','Kovacik','� 39;,'Spojova 21','Bratislava', 9;0903565566','kovacik@pobox .sk');

INSERT INTO zakaznik
VALUES('9','Juraj 9;,'Lichtner','' ,'Krivanska 30','Bratislava', 9;0908787741','lichtner@pobo x.sk');

INSERT INTO zakaznik
VALUES('10','Nada 9;,'Hamalova','' ,'Krikova 7','Trnava','090 5996332','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&# 039;,'Grancova',' Mgr.','Bzovicka 9',' Bratislava','45646544' ,'alfa@alfa.sk');
INSERT INTO dodavatel
VALUES('2','BETA' ;,'45524411','Gustav& #039;,'Marosi','' ;,'Lubovniansky 14','Trnava','25 632541','beta@beta.sk' );

INSERT INTO dodavatel
VALUES('3','GAMA' ;,'85214521','Jozef&# 039;,'Novak',' Ing.','Romanova 44','Kosice','35 265412','gama@gama.sk' );


INSERT INTO dodavatel
VALUES('4','DELTA 9;,'89656554','Alexand er ','Eichner','Mgr .','Hlavna 10',' Bratislava','63258521' ,'delta@delta.sk');

INSERT INTO dodavatel
VALUES('5','EPSILON&# 039;,'84554561','Fedor ','Fabian',' Ing.','Zelena 5',' Bratislava','65222141' ,'epsilon@epsilon.sk');

INSERT INTO dodavatel
VALUES('6','DZETA 9;,'76854354','Viliam ','Kacz','' ,'Holubkova 66',' Bratislava','63252142' ,'dzeta@dzeta.sk');

INSERT INTO dodavatel
VALUES('7','ETA' ,'54656445','Milan� 39;,'Kadlec',' Ing.','Trnavska 45','Trencin','6 6652142','eta@eta.sk') ;

INSERT INTO dodavatel
VALUES('8','THETA 9;,'64532133','Arnold ','Sivak','' ;,'Bratislavska 1/A',' Bratislava','88454112' ,'theta@theta.sk');

INSERT INTO dodavatel
VALUES('9','IOTA' ;,'54453122','Gabriel ','Vlasak','Mgr. ','Dunajska 6','Trnava','956 52145','iota@iota.sk') ;

INSERT INTO dodavatel
VALUES('10','KAPA 9;,'54534535','Jan� 39;,'Vlcek','Mgr. 9;,'Hrozna 78','Trencin','6 5621451','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','6 5000','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 9;,'3000','tkany' ;);

INSERT INTO nabytok
VALUES('P1','8', 'Postel','NADA', '4000','ulozny priestor');
INSERT INTO nabytok
VALUES('P2', '8','Postel',&# 039;BORA','3000', 9;bez ulozeneho priestoru');

INSERT INTO nabytok
VALUES('ROL1', '10','Vstavane skrine','ROLIDOR',� 39;36000','rolovacie skrine, drevo');

INSERT INTO nabytok
VALUES('S1', '3','Stol', 9;KAROL','2000',' ;drevo');

INSERT INTO nabytok
VALUES('S2', '3','Stol', 9;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',&# 039;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','plas t');

INSERT INTO nabytok
VALUES('ST4', '7',' Stolicka','EVA I','1000','drevo ');

INSERT INTO nabytok
VALUES('ST5', '7',' Stolicka','EVA II','1200','drev o');

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 9;);

INSERT INTO zakazky
VALUES('2','3', '21.03.2004','05.04.200 4','07.04.2004');

INSERT INTO zakazky
VALUES('3','5', '21.03.2004','05.04.200 4','05.04.2004');

INSERT INTO zakazky
VALUES('4','8', '24.03.2004','13.04.200 4','');

INSERT INTO zakazky
VALUES('5','3', '24.03.2004','25.03.200 4','26.03.2004');

INSERT INTO zakazky
VALUES('6','3', '26.03.2004','01.04.200 4','01.04.2004');

INSERT INTO zakazky
VALUES('7','5', '27.03.2004','02.04.200 4','02.04.2004');

INSERT INTO zakazky
VALUES('8','6', '01.04.2004','01.04.200 4','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&# 039;);

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_vybave nia – datum_prijatia) V2

SELECT ZK.meno,ZK.priezvisko,Z.id_zakazky,Z.dat um_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=(SELE CT 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_vybave nia – datum_prijatia) V2

SELECT ZK.meno,ZK.priezvisko,Z.id_zakazky,Z.dat um_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=(SELE CT 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