Tvorba dotazov
1. Vypíš klientov s uvedením procedúr, ktoré absolvovali.
select k.meno, k.priezvisko, rp.tel_cislo, cp.nazov_procedury
from klient k, cennik_procedur cp, rezervacie_procedur rp
where k.id_klienta=rp.id_klienta
and rp.id_procedury=cp.id_procedury
order by k.priezvisko;
MENO PRIEZVISKO TEL_CISLO NAZOV_PROCEDURY
––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Jozefina Baluchova 038/749 32 24 Anti-age vikend
Jozefina Baluchova 038/749 32 24 Liecebny balik MINI
Jozefina Baluchova 038/749 32 24 Balik Fit
Malgorzata Czepczyk 423 25 10 Vodny svet
Malgorzata Czepczyk 423 25 10 Liecebny balik
Malgorzata Czepczyk 423 25 10 Aphrodite vikend
Bozena Durickova 043/422 02 28 Aphrodite Love Exclusive
Ladislav Hodas 041/549 80 75 Relax Classic
Ladislav Hodas 041/549 80 75 Antistresovy balik
Anna Koporcova 052/442 21 00 Relax Spa Sensation
Roman Kubo 057/776 41 73 Relax Exclusive
Roman Kubo 057/776 41 73 Zdravy chrbat
Bartolomej Kusnir 056/679 73 43 Beauty Anticellu
Bartolomej Kusnir 056/679 73 43 Aphrodite vikend
Alois Muller 012 110 50 Vodny svet
Alois Muller 012 110 50 Beauty Vital
Alois Muller 012 110 50 Balik Fit
Alois Muller 012 110 50 Anti-age Exclusive
Alois Muller 012 110 50 Liecebny balik
Alois Muller 012 110 50 Antistresovy balik
Jozef Ochodnican 041/421 42 73 Balik Fit
Jozef Ochodnican 041/421 42 73 Liecebny balik MINI
Frantisek Person 041/549 33 91 Liecebny balik MINI
Frantisek Person 041/549 33 91 Vodny svet
Frantisek Person 041/549 33 91 Antistresovy balik
Frantisek Person 041/549 33 91 Relax Spa Sensation
Jiri Polert 599 099 717 Aphrodite Love Exclusive
Hilde Schneider 0304 172 400 Beauty Vital
Hilde Schneider 0304 172 400 Liecebny balik
Hilde Schneider 0304 172 400 Balik Fit
Antonia Sulovcova 041/763 75 25 Beauty Anticellu
2. Vypíš všetky apartmány s uvedením ubytovacieho zariadenia, v ktorom sa nachádzajú.
select u.pocet_lozok, h.hotel
from ubytovanie u, hotel h
where u.id_hotela=h.id_hotela
and pocet_lozok='apartman'
order by hotel asc;
POCET_LOZOK HOTEL
-------------------- --------------------
apartman Aphrodite
apartman Aphrodite
apartman Laura
apartman Laura
apartman penzion Antik
apartman penzion Antik
apartman Velka Fatra
apartman Velka Fatra
apartman Villa Flora
apartman Villa Flora
apartman Villa Margareta
apartman Villa Margareta
3. Vypíš tie rezervácie ubytovania, ktoré pripadajú na dátum od 14. 02. 2010 s uvedením informácií o klientovi.
select k.meno, k.priezvisko, ru.rezervacie_od, hotel, u.pocet_lozok
from klient k, rezervacie_ubytovania ru, hotel h, ubytovanie u
where k.id_klienta=ru.id_klienta
and ru.id_zariadenia=u.id_zariadenia
and u.id_hotela=h.id_hotela
and u.pocet_lozok='apartman'
and ru.rezervacie_od>='14.02.2010';
MENO PRIEZVISKO REZERVAC HOTEL POCET_LOZOK
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Alois Muller 26.06.10 Aphrodite apartman
Jiri Polert 26.08.10 Aphrodite apartman
4. Vypíš klientov z Rakúska.
select k.meno, k.priezvisko, m.mesto, s.stat
from klient k, stat s, mesto m
where k.id_statu=s.id_statu and k.id_mesta=m.id_mesta
and s.stat='Rakusko'
order by k.priezvisko;
MENO PRIEZVISKO MESTO STAT
---------- -------------------- ------------------------------ ---------------
Alois Muller Wien Rakusko
5. Vypíš ubytovacie zariadenie s uvedeným počtom lôžok a ceny na noc, ktorým prislúcha údaj viac ako 4 noci.
select h.hotel, u.pocet_lozok, u.cena_noc, u.pocet_noci
from hotel h, ubytovanie u
where h.id_hotela=u.id_hotela
and pocet_noci = 'od 4 noci';
HOTEL POCET_LOZOK CENA_NOC POCET_NOCI
––––––––––––––––––––––––––––––––––––––––––––––––––––-
Aphrodite 2-lozkova 123 od 4 noci
Aphrodite 2-lozkova standard 86 od 4 noci
Aphrodite apartman 146 od 4 noci
Aphrodite pristelka 21 od 4 noci
Velka Fatra 1-lozkova 41 od 4 noci
Velka Fatra 2-lozkova 59 od 4 noci
Velka Fatra 2-lozkova standard 109 od 4 noci
Velka Fatra apartman 126 od 4 noci
Velka Fatra pristelka 20 od 4 noci
Villa Flora 1-lozkova 26 od 4 noci
Villa Flora 2-lozkova 49 od 4 noci
Villa Flora apartman 64 od 4 noci
Villa Flora pristelka 18 od 4 noci
Villa Margareta 2-lozkova 53 od 4 noci
Villa Margareta apartman 76 od 4 noci
Villa Margareta pristelka 18 od 4 noci
Mala Fatra 1-lozkova 24 od 4 noci
Mala Fatra 2-lozkova 43 od 4 noci
Mala Fatra pristelka 15 od 4 noci
penzion Antik 1-lozkova 23 od 4 noci
penzion Antik 2-lozkova 39 od 4 noci
penzion Antik apartman 53 od 4 noci
penzion Antik pristelka 15 od 4 noci
Laura 1-lozkova 28 od 4 noci
Laura 2-lozkova 43 od 4 noci
Laura apartman 59 od 4 noci
Laura pristelka 15 od 4 noci
6. Vypíš tie rezervácie ubytovania, ktoré začínajú od 01. 09. 2010.
select k.priezvisko, ru.rezervacie_od, ru.rezervacie_do, h.hotel, u.pocet_lozok
from klient k, rezervacie_ubytovania ru, hotel h, ubytovanie u
where k.id_klienta=ru.id_klienta
and ru.id_zariadenia=u.id_zariadenia
and u.id_hotela=h.id_hotela
and rezervacie_od >'01.09.2010'
and pocet_lozok = 'pristelka'
order by priezvisko desc;
PRIEZVISKO REZERVACIE_OD REZERVACIE_DO HOTEL POCET_LOZOK
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Mudra 13.09.10 17.09.10 penzion Antik pristelka
Czepczyk 20.09.10 25.09.10 Velka Fatra pristelka
7. Vypočítaj celkovú cenu ubytovania.
select k.priezvisko, h.hotel, ru.pocet_noci_spolu, u.cena_noc, ru.pocet_noci_spolu*u.cena_noc as celkova_cena
from klient k, hotel h, rezervacie_ubytovania ru, ubytovanie u
where k.id_klienta=ru.id_klienta
and u.id_zariadenia=ru.id_zariadenia
and u.id_hotela=h.id_hotela
order by k.priezvisko;
PRIEZVISKO HOTEL POCET_NOCI_SPOLU CENA_NOC CELKOVA_CENA
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Baluchova Aphrodite 7 123 861
Czepczyk Velka Fatra 5 20 100
Durickova Mala Fatra 2 28 56
Hodas Laura 4 15 60
Koporcova Villa Margareta 3 18 54
Kubo Villa Flora 4 26 104
Kusnir penzion Antik 4 23 92
Mudra penzion Antik 4 15 60
Muller Aphrodite 10 146 1460
Ochodnican Aphrodite 6 86 516
Person Mala Fatra 7 15 105
Polert Aphrodite 3 156 468
Saga Villa Flora 3 18 54
Schneider Velka Fatra 8 41 328
Sulovcova Aphrodite 3 133 399
create view tabulka_1 as
select k.priezvisko, h.hotel, ru.pocet_noci_spolu, u.cena_noc, ru.pocet_noci_spolu*u.cena_noc as celkova_cena
from klient k, hotel h, rezervacie_ubytovania ru, ubytovanie u
where k.id_klienta=ru.id_klienta
and u.id_zariadenia=ru.id_zariadenia
and u.id_hotela=h.id_hotela
order by k.priezvisko;
8. Vypíš procedúry s uvedením ceny a klienta, ktorý procedúru absolvoval.
select k.meno, k.priezvisko, cp.nazov_procedury, cp.cena_procedury
from klient k, cennik_procedur cp, rezervacie_procedur rp
where k.id_klienta=rp.id_klienta
and rp.id_procedury=cp.id_procedury
order by k.priezvisko;
MENO PRIEZVISKO NAZOV_PROCEDURY CENA_PROCEDURY
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Jozefina Baluchova Anti-age vikend 96
Jozefina Baluchova Liecebny balik MINI 27
Jozefina Baluchova Balik Fit 451
Malgorzata Czepczyk Vodny svet 10
Malgorzata Czepczyk Liecebny balik 40
Malgorzata Czepczyk Aphrodite vikend 58
Bozena Durickova Aphrodite Love Exclusive 335
Ladislav Hodas Relax Classic 27
Ladislav Hodas Antistresovy balik 219
Anna Koporcova Relax Spa Sensation 45
Roman Kubo Relax Exclusive 31
Roman Kubo Zdravy chrbat 132
Bartolomej Kusnir Beauty Anticellu 262
Bartolomej Kusnir Aphrodite vikend 58
Alois Muller Vodny svet 10
Alois Muller Beauty Vital 64
Alois Muller Balik Fit 451
Alois Muller Anti-age Exclusive 335
Alois Muller Liecebny balik 40
Alois Muller Antistresovy balik 219
Jozef Ochodnican Balik Fit 451
Jozef Ochodnican Liecebny balik MINI 27
Frantisek Person Liecebny balik MINI 27
Frantisek Person Vodny svet 10
Frantisek Person Antistresovy balik 219
Frantisek Person Relax Spa Sensation 45
Jiri Polert Aphrodite Love Exclusive 335
Hilde Schneider Beauty Vital 64
Hilde Schneider Liecebny balik 40
Hilde Schneider Balik Fit 451
Antonia Sulovcova Beauty Anticellu 262
create view tabulka_2 as
select k.meno, k.priezvisko, cp.nazov_procedury, cp.cena_procedury
from klient k, cennik_procedur cp, rezervacie_procedur rp
where k.id_klienta=rp.id_klienta
and rp.id_procedury=cp.id_procedury
order by k.priezvisko;
9. Vypočítaj celkovú cenu procedúr.
select k.meno, k.priezvisko,sum(t2.cena_procedury) as celk_cena_proced
from klient k, tabulka_2 t2
where k.priezvisko=t2.priezvisko
group by k.meno, k.priezvisko
order by k.priezvisko;
MENO PRIEZVISKO CELK_CENA_PROCED
––––––––––––––––––––––––––––––––––––––––
Jozefina Baluchova 574
Malgorzata Czepczyk 108
Bozena Durickova 335
Ladislav Hodas 246
Anna Koporcova 45
Roman Kubo 163
Bartolomej Kusnir 320
Alois Muller 1119
Jozef Ochodnican 478
Frantisek Person 301
Jiri Polert 335
Hilde Schneider 555
Antonia Sulovcova 262
create view tabulka_3 as
select k.meno, k.priezvisko,sum(t2.cena_procedury) as celk_cena_proced
from klient k, tabulka_2 t2
where k.priezvisko=t2.priezvisko
group by k.meno, k.priezvisko
order by k.priezvisko;
10. Vypočítaj celkovú cenu pobytu.
select k.meno, k.priezvisko, t3.celk_cena_proced+t1.celkova_cena as celk_cena_pobyt
from klient k, tabulka_1 t1, tabulka_3 t3
where k.priezvisko=t1.priezvisko
and t1.priezvisko=t3.priezvisko
order by k.priezvisko;
MENO PRIEZVISKO CELK_CENA_POBYT
–––––––––––––––––––––––––––––––––––––––
Jozefina Baluchova 1435
Malgorzata Czepczyk 208
Bozena Durickova 391
Ladislav Hodas 306
Anna Koporcova 99
Roman Kubo 267
Bartolomej Kusnir 412
Alois Muller 2579
Jozef Ochodnican 994
Frantisek Person 406
Jiri Polert 803
Hilde Schneider 883
Antonia Sulovcova 661
create view tabulka_4 as
select k.meno, k.priezvisko, t3.celk_cena_proced+t1.celkova_cena as celk_cena_pobyt
from klient k, tabulka_1 t1, tabulka_3 t3
where k.priezvisko=t1.priezvisko
and t1.priezvisko=t3.priezvisko
order by k.priezvisko;
11. Vypočítaj priemernú cenu pobytu.
select avg(celk_cena_pobyt) as priem_cena_pobyt
from tabulka_4;
PRIEM_CENA_POBYT
–––––––––––––––––––
726,461538
12. Zaokrúhli priemernú cenu pobytu na celé čísla nahor.
select ceil(avg(celk_cena_pobyt)) as zaokr_priem_cena
from tabulka_4;
ZAOKR_PRIEM_CENA
–––––––––––––––––––
727
13. Vypíš najlacnejší pobyt.
select meno, priezvisko, celk_cena_pobyt as najlacnejsi_pobyt
from tabulka_4
where celk_cena_pobyt = (select min(celk_cena_pobyt) from tabulka_4);
MENO PRIEZVISKO NAJLACNEJSI_POBYT
––––––––––––––––––––––––––––––––––––––––
Anna Koporcova 99
14. Vypíš najdrahší pobyt.
select meno, priezvisko, celk_cena_pobyt as najdrahsi_pobyt
from tabulka_4
where celk_cena_pobyt = (select max(celk_cena_pobyt) from tabulka_4);
MENO PRIEZVISKO NAJDRAHSI_POBYT
–––––––––––––––––––––––––––––––––––––––
Alois Muller 2579
15. Vypíš klientov, ktorých priezvisko začína na K.
select k.meno, k.priezvisko
from klient k
where k.priezvisko like 'K%'
order by k.priezvisko;
MENO PRIEZVISKO
---------- -------------------
Anna Koporcova
Roman Kubo
Bartolomej Kusnir
16. Vypíš PSČ a k nemu príslušné mesto.
select concat (k.psc,m.mesto) as psc_mesto
from mesto m, klient k
where k.id_mesta=m.id_mesta;
PSC_MESTO
------------------------------------
066 01Humenne
915 01Nove Mesto nad Vahom
958 01Partizanske
024 04Kysucke Nove Mesto
038 61Vrutky
059 81Dolny Smokovec
076 62Dvorianky
013 14Kamenna Poruba
036 01Martin
010 01Zilina
1020Wien
104 07Berlin
701 38Ostrava
31-034Krakow
013 13Rajecke Teplice