--1 --select indeks, max(coalesce(datum_usmenog, datum_pismenog)) poslednji --from ispit --where ocena > 5 and status_prijave='o' --group by indeks; --2 --select s.naziv smer, p1.naziv obavezan_predmet, p2.naziv uslovni_predmet --from nivo_kvalifikacije nk join smer s on s.id_nivoa=nk.id_nivoa -- join obavezan_predmet op on op.id_smera=s.id_smera -- join predmet p1 on p1.id_predmeta=op.id_predmeta -- left outer join uslovni_predmet up on up.id_predmeta=op.id_predmeta -- left outer join predmet p2 on p2.id_predmeta=up.id_uslovnog --where nk.stepen='I' --order by smer, obavezan_predmet; --3 --select d.indeks, d.ime, d.prezime, p.naziv --from dosije d join obavezan_predmet op on d.id_smera=op.id_smera -- join predmet p on p.id_predmeta=op.id_predmeta -- join smer s on s.id_smera=d.id_smera -- join nivo_kvalifikacije nk on nk.id_nivoa=s.id_nivoa --where nk.stepen='I' and s.naziv='Informatika' and year(datum_upisa)=2009 and not exists (select * -- from ispit i -- where i.indeks= d.indeks and -- i.id_predmeta=op.id_predmeta and -- ocena>5 and status_prijave='o'); --4 --I nacin --with indeksbodova as (select indeks, sum(p.bodovi) polbodovi --from ispit i join predmet p on i.id_predmeta=p.id_predmeta --where ocena > 5 and status_prijave='o' --group by indeks), --maxsmer as (select id_smera, max(polbodovi) maxb --from dosije d join indeksbodova on d.indeks=indeksbodova.indeks --group by id_smera) -- --select s.naziv, d.indeks, ime, prezime, polbodovi --from dosije d join indeksbodova on d.indeks=indeksbodova.indeks -- join maxsmer on maxsmer.id_smera=d.id_smera join smer s on maxsmer.id_smera=s.id_smera --where polbodovi = maxb; --II nacin --with indeksbodova as (select id_smera, d.indeks, ime, prezime, sum(p.bodovi) polbodovi --from dosije d join ispit i on d.indeks=i.indeks -- join predmet p on i.id_predmeta=p.id_predmeta --where ocena > 5 and status_prijave='o' --group by id_smera, d.indeks, ime, prezime) -- --select s.naziv, indeks, ime, prezime, polbodovi --from indeksbodova ib join smer s on ib.id_smera=s.id_smera --where polbodovi = (select max(polbodovi) -- from indeksbodova ib2 -- where ib2.id_smera=ib.id_smera); --5 create view ispitni_rok_2011 as select godina, oznaka, naziv, pocetak_prijavljivanja, kraj_prijavljivanja from ispitni_rok where godina >= 2011; select * from ispitni_rok_2011 ; insert into ispitni_rok values(2014, 'jan', 'Januar 2014', '10.1.2014', '20.1.2014', '1'); insert into ispitni_rok_2011 values(2015, 'dec', 'Decembar 2015', current date, current_date + 20 days) ; update ispitni_rok_2011 set naziv = 'Jan 2014' where godina = 2014 and oznaka = 'jan' ; delete from ispitni_rok_2011 where naziv= 'Decembar 2015'; drop view ispitni_rok_2011; --6 create view mp_ispiti as select i.* from ispit i join dosije d on i.indeks = d.indeks where d.ime = 'Marko' and d.prezime = 'Petrovic' ; update mp_ispiti set napomena='Ispiti Marka Petrovica'; create view mp_ispiti1 as select * from ispit i where exists (select * from dosije d where i.indeks = d.indeks and d.ime = 'Marko' and d.prezime = 'Petrovic'); update mp_ispiti1 set napomena='Ispiti Marka Petrovica'; select * from mp_ispiti1; --7 create view polaganja_stud_kv_bg as select i1.* from dosije d join ispit i1 on d.indeks = i1.indeks join ispit i2 on i2.indeks = i1.indeks where ime in ('Marko','Maja') and i2.oznaka_roka = 'apr' and i2.godina_roka = 2008 and i2.ocena > 5 and i2.status_prijave ='o'; create view polaganja_stud_kv_bg_2 as select * from ispit i where exists (select * from dosije where indeks = i.indeks and ime in ('Marko','Maja')) and exists (select * from ispit where indeks = i.indeks and ocena > 5 and status_prijave = 'o' and oznaka_roka = 'apr' and godina_roka = 2008 ) with check option; select * from dosije where indeks= 20100026; insert into polaganja_stud_kv_bg_2(indeks, id_predmeta, godina, semestar, godina_roka, oznaka_roka, datum_prijave, nacin_prijave) values (20100026,2001,2011,1,2011,'okt','10/01/2011','auto'); insert into polaganja_stud_kv_bg_2(indeks, id_predmeta, godina, semestar, godina_roka, oznaka_roka, datum_prijave, nacin_prijave) values (20070143,635,2007,1,2008,'okt','10/01/2008','auto'); update polaganja_stud_kv_bg_2 set datum_prijave = '10/25/2008' where indeks = 20070143 and id_predmeta = 635 and godina_roka = 2008 and oznaka_roka = 'okt'; delete from polaganja_stud_kv_bg_2 where indeks = 20070143 and id_predmeta = 635 and godina_roka = 2008 and oznaka_roka = 'okt';