Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Prikazati spojeno ime i prezime, kao i grad za sve polaznike čije se
- prezime završava na „lovic“ i koji imaju manje od 29 godina.
- SELECT (IME ||' '|| PREZIME) AS "IME I PREZIME", GRAD
- FROM POLAZNIK
- WHERE LOWER(PREZIME) LIKE '%lovic'
- ########################################################
- 2. Prikazati ID i naziv kursa i jezik (format jezika videti na slici)
- za sve kurseve koji se slušaju na engleskom jeziku i koji su se
- završili (održali) pre više od 9 godina.
- NAPOMENA: Zahtev realizovati korišćenjem podupita.
- SELECT KURSID, NAZIVKURSA, SUBSTR(JEZIK,1,3) ||'.' AS JEZIK
- FROM KURS
- WHERE JEZIK LIKE 'engleski' AND KURSID IN (SELECT KURSID
- FROM TERMIN
- WHERE DATUMOD + INTERVAL '9' YEAR < SYSDATE);
- ########################################################
- 3. Prikazati broj kurseva i broj različitih oblasti po jezicima na kojima se slušaju.
- U rezultatu ne treba prikazivati
- kurseve koji se slušaju na srpskom jeziku i koji imaju tri ili više različitih oblasti.
- SELECT COUNT(*) AS BROJ_KURSEVA, COUNT(DISTINCT OBLAST) AS BROJ_OBLASTI
- FROM KURS
- WHERE JEZIK NOT LIKE 'srp%'
- GROUP BY JEZIK HAVING COUNT(DISTINCT OBLAST) < 3
- ########################################################
- 4.Prikazati id kursa, naziv kursa i broj različitih predavača za
- sve kurseve čija je najmanja cena veća od svih
- prosečnih cena kurseva čiji termini se održavaju u učionici B020.
- SELECT K.KURSID, K.NAZIVKURSA, COUNT(DISTINCT T.PREDAVAC)
- FROM KURS K JOIN TERMIN T ON K.KURSID = T.KURSID
- GROUP BY K.KURSID, K.NAZIVKURSA
- HAVING MIN(T.CENA) > (SELECT AVG(T1.CENA)
- FROM TERMIN T1
- WHERE T1.BROJUCIONICE = 'B020');
- ########################################################
- 5. Prikazati id kursa, datum početka termina i naziv kursa i broj
- prijavljenih kandidata po terminu, broj ispravnih
- prijava (prijava pre početka termina) i broj
- neispravnih prijava (prijava posle početka termina) za sve kurseve
- jezika.
- SELECT K.KURSID, T.DATUMOD, K.NAZIVKURSA, COUNT(*) AS BROJ_PRIJAVLJENIH,
- SUM(CASE WHEN P.DATUMPRIJAVE < T.DATUMOD THEN 1 ELSE 0 END) AS BROJ_ISPRAVNIH,
- SUM(CASE WHEN P.DATUMPRIJAVE > T.DATUMOD THEN 1 ELSE 0 END) AS BROJ_NEISPRAVNIH
- FROM TERMIN T JOIN KURS K ON K.KURSID = T.KURSID
- JOIN PRIJAVA P ON (T.DATUMOD,T.KURSID) = (P.DATUMOD,P.KURSID)
- WHERE K.OBLAST = 'Programiranje'
- GROUP BY K.KURSID, T.DATUMOD, K.NAZIVKURSA;
- ########################################################
- 6. Pronaći šifre svih kurseva koji se mogu dobiti kao
- gratis kursevi za kurs ‘C#’ (uzeti u obzir i gratis kurseve
- njegovog gratis kursa itd.).
- WITH GRATIS_KURSEVI(GRATIS_KURS) AS
- (
- SELECT KURSGRATIS
- FROM KURS
- WHERE NAZIVKURSA = 'Programiranje u C#'
- UNION ALL
- SELECT KURSGRATIS
- FROM KURS K JOIN GRATIS_KURSEVI GK ON K.KURSID = GK.GRATIS_KURS
- WHERE KURSGRATIS IS NOT NULL
- )
- SELECT *
- FROM GRATIS_KURSEVI
- ########################################################
- 7. Prikazati ime, prezime polaznika, cenu termina i inicijale
- imena i prezimena predavača za koji se polaznik
- odlučio, kao i TO da li je polazniku prošao rođendan u tekućoj
- godini za sve polaznike koji imaju više od 26 ipo godina.
- I NACIN:
- SELECT PO.IME, PO.PREZIME, T.CENA,
- CONCAT(SUBSTR(P.IME,1,1),SUBSTR(P.PREZIME,1,1)) AS INICIJALI,
- CASE
- WHEN EXTRACT(MONTH FROM DATUMRODJENJA) < EXTRACT(MONTH FROM SYSDATE)
- OR EXTRACT(DAY FROM DATUMRODJENJA) <= EXTRACT(DAY FROM SYSDATE)
- AND EXTRACT(MONTH FROM DATUMRODJENJA) = EXTRACT(MONTH FROM SYSDATE)
- THEN 'PROSAO RODJENDAN'
- ELSE 'NIJE PROSAO RODJENDAN'
- END AS RODJENDAN
- FROM POLAZNIK PO JOIN PRIJAVA PR ON PO.POLAZNIKID = PR.POLAZNIKID
- JOIN TERMIN T ON (PR.DATUMOD,PR.KURSID) = (T.DATUMOD,T.KURSID)
- JOIN PREDAVAC P ON T.PREDAVAC = P.PREDAVACID
- WHERE MONTHS_BETWEEN(SYSDATE, PO.DATUMRODJENJA)/12 > 26.5;
- ---------------------------------------------------------
- II NACIN:
- SELECT PO.IME, PO.PREZIME, T.CENA,
- CONCAT(SUBSTR(P.IME,1,1),SUBSTR(P.PREZIME,1,1)) AS INICIJALI,
- CASE
- WHEN EXTRACT(MONTH FROM DATUMRODJENJA) < EXTRACT(MONTH FROM SYSDATE)
- THEN 'PROSAO RODJENDAN'
- WHEN EXTRACT(MONTH FROM DATUMRODJENJA) > EXTRACT(MONTH FROM SYSDATE)
- THEN 'NIJE PROSAO RODJENDAN'
- WHEN EXTRACT(DAY FROM DATUMRODJENJA) <= EXTRACT(DAY FROM SYSDATE)
- THEN 'PROSAO RODJENDAN'
- ELSE 'NIJE PROSAO RODJENDAN'
- END AS RODJENDAN
- FROM POLAZNIK PO JOIN PRIJAVA PR ON PO.POLAZNIKID = PR.POLAZNIKID
- JOIN TERMIN T ON (PR.DATUMOD,PR.KURSID) = (T.DATUMOD,T.KURSID)
- JOIN PREDAVAC P ON T.PREDAVAC = P.PREDAVACID
- WHERE MONTHS_BETWEEN(SYSDATE, PO.DATUMRODJENJA)/12 > 26.5;
- ########################################################
- 8. Prikazati naziv kurseva i broj termina za kurseve za sve termine
- koji imaju gratis kurs i čija je minimalna cena
- manja od svih cena termina čije su prijave
- realizovane u septembru ili oktobru.
- SELECT K.NAZIVKURSA, COUNT(*) AS BROJ_TERMINA
- FROM KURS K JOIN TERMIN T ON K.KURSID = T.KURSID
- WHERE K.KURSGRATIS IS NOT NULL
- GROUP BY K.NAZIVKURSA
- HAVING MIN(T.CENA) < (SELECT MIN(T.CENA)
- FROM TERMIN T JOIN PRIJAVA PR ON (T.KURSID,T.DATUMOD)=(PR.KURSID,PR.DATUMOD)
- WHERE EXTRACT(MONTH FROM PR.DATUMPRIJAVE) IN (9,10));
- ########################################################
- 9.Prikazati id kursa, id predavača, ukupne cene termina
- prema predavačima i kursevima, ali i zbirno prema
- kursevima, kao i ukupnu cenu svih termina za termine
- u kojima ime predavača počinje na slovo J.
- SELECT K.KURSID, T.PREDAVAC, SUM(T.CENA)
- FROM KURS K JOIN TERMIN T ON K.KURSID = T.KURSID
- JOIN PREDAVAC P ON T.PREDAVAC = P.PREDAVACID
- WHERE P.IME LIKE 'J%'
- GROUP BY ROLLUP( K.KURSID, T.PREDAVAC)
Advertisement
Add Comment
Please, Sign In to add comment