SQL Kolokvij Flashcards
Prikazati naziv, spol i radne sate svake osobe koja u naziv sadrži ‘ić’ te ima nadređenu osobu
a također prikazati i naziv spol i radne sate osobe koja joj je nadređena.
Dodati aliase na svaki stupac
SELECT
o1.NAZIV_O AS NazivOsobe,
o1.SPOL AS SpolOsobe,
o1.SATI as RadniSatiOsobe,
o2.NAZIV_O AS NazivNadredjenog,
o2.SPOL AS SpolNadredjenog,
o2.SATI AS SatiNadredjenog
FROM pposcic.OSOBA o1 JOIN pposcic.OSOBA o2 ON o1.NADREDJENI = o2.SIFRA_O
WHERE o1.NAZIV_O LIKE ‘%ić%’ AND o1.NADREDJENI IS NOT NULL;
Koliko osoba koje rade na projektu koji počinje u 2020. godini ima veću godišnju plaću od najveće
godišnje plaće osoba s projekta AVANT
SELECT COUNT(*) AS BrojOsoba
FROM pposcic.OSOBA O
JOIN pposcic.PROJEKT P ON O.SIFRA_P = P.SIFRA_P
WHERE P.DATPOC >= TO_DATE(‘2020-01-01’, ‘YYYY-MM-DD’)
AND O.PLACA * 12 > (
SELECT MAX(PLACA) * 12
FROM pposcic.OSOBA
WHERE NAZIV_P = ‘AVANT’
);
Prikazati odobrena sredstva po godini izvođenja projekta (dodati alias) onih projekata koji imaju
zaposlene barem dvije osobe na plaći manjoj od 2700 EUR, a da su voditelji tima ili developeri
SELECT
P.SIFRA_P AS Sifra_Projekta,
P.NAZIV_P AS Naziv_Projekta,
TO_CHAR(P.DATPOC, ‘YYYY’) AS Godina_Izvodjenja,
P.SREDSTVA AS Odobrena_Sredstva
FROM pposcic.PROJEKT P JOIN pposcic.OSOBA O ON P.SIFRA_P = O.SIFRA_P
WHERE O.PLACA < 2700 AND O.ULOGA IN (‘voditelj tima’, ‘developer’)
GROUP BY P.SIFRA_P, P.NAZIV_P, TO_CHAR(P.DATPOC, ‘YYYY’), P.SREDSTVA
HAVING COUNT(*) >= 2;
Prikazati naziv projekta, kao i naziv, plaću i radne sate svih njegovih članova (osoba), uključujući
i osobe koje nisu pridružene na projekte. Sortirati u rastućem redoslijedu plaće, a unutar toga po nazivu
projekta u padajućem redoslijedu
SELECT
P.NAZIV_P AS Naziv_Projekta,
O.NAZIV_O AS Naziv_Osobe,
O.PLACA AS Placa_Osobe,
O.SATI AS Sati_Osobe
FROM pposcic.PROJEKT P LEFT JOIN pposcic.OSOBA O ON P.SIFRA_P = O.SIFRA_P
ORDER BY O.PLACA ASC, P.NAZIV_P DESC;
Prikazati za svaku osobu njezinu šifru, spol, naziv i sredstva projekta na kojem radi te razinu kojoj
osoba pripada prema iznosu radnih sati
SELECT
O.SIFRA_O AS Sifra_Osobe,
O.SPOL AS Spol_Osobe,
P.NAZIV_P AS Naziv_Projekta,
P.SREDSTVA AS Sredstva_Projekta,
R.RAZINA AS Razina_Osobe
FROM pposcic.OSOBA O JOIN pposcic.PROJEKT P ON O.SIFRA_P = P.SIFRA_P
JOIN pposcic.RAZINA R ON O.SATI BETWEEN R.MIN_S AND R.MAX_S;
Koliko osoba koje rade na projektu koji završava u 2024. godini ima veću mjesečnu plaću od
najveće plaće osobe s projekta TERLA
SELECT COUNT(*) AS Broj_Osoba FROM pposcic.OSOBA O JOIN pposcic.PROJEKT P
ON O.SIFRA_P = P.SIFRA_P WHERE P.DATZAV <= TO_DATE(‘31-12-2024’, ‘DD-MM-YYYY’)
AND O.PLACA > (SELECT MAX(PLACA) FROM pposcic.OSOBA WHERE NAZIV_P = ‘TERLA’);
Ispisati naziv, ulogu i plaću osoba koje imaju plaću veću od najveće plaće voditelja tima,
ali i rade na onim projektima koji imaju zaposlene osobe koje u nazivu sadrže izraz ‘ić’
SELECT
O.NAZIV_O AS Naziv_Osobe,
O.ULOGA AS Uloga_Osobe,
O.PLACA AS Placa_Osobe
FROM pposcic.OSOBA O JOIN pposcic.PROJEKT P ON O.SIFRA_P = P.SIFRA_P
WHERE O.PLACA > (SELECT MAX(PLACA) FROM pposcic.OSOBA WHERE ULOGA = ‘voditelj tima’
AND P.SIFRA_P IN (SELECT SIFRA_P FROM pposcic.OSOBA WHERE NAZIV_O LIKE ‘%ić%’));
Prikazati sve podatke o projektima koji imaju barem dva developera s plaćom većom od 2300 EUR
SELECT P.* FROM pposcic.PROJEKT P JOIN pposcic.OSOBA O ON P.SIFRA_P = O.SIFRA_P
WHERE O.PLACA > 2300 AND O.ULOGA = ‘developer’ GROUP BY P.SIFRA_P, P.NAZIV_P, P.DATPOC, P.DATZAV, P.SREDSTVA
HAVING COUNT(*) >= 2;
Prikazati naziv projekta, kao i naziv, plaću i radne sate svih njegovih članova (osoba), uključujući
i projekte bez pridruženih članova. Sortirati u padajućem redoslijedu po nazivu projekta, a unutar toga
po radnim satima u padajućem redoslijedu
SELECT
P.NAZIV_P AS Naziv_Projekta,
O.NAZIV_O AS Naziv_Osobe,
O.PLACA AS Placa_Osobe,
O.SATI AS Radni_Sati_Osobe
FROM pposcic.PROJEKT P LEFT JOIN pposcic.OSOBA O ON P.SIFRA_P = O.SIFRA_P
ORDER BY P.NAZIV_P DESC, O.SATI DESC;
Prikazati za svaku osobu njezin naziv, naziv projekta na kojem radi, sate, plaću te razinu kojoj osoba pripada prema iznosu radnih sati
SELECT
O.NAZIV_O AS Naziv_Osobe,
P.NAZIV_P AS Naziv_Projekta,
O.SATI AS Radni_Sati_Osobe,
O.PLACA AS Placa_Osobe,
R.RAZINA AS Razina_Osobe
FROM pposcic.OSOBA O JOIN pposcic.PROJEKT P ON O.SIFRA_P = P.SIFRA_P
JOIN pposcic.RAZINA R ON O.SATI BETWEEN R.MIN_S AND R.MAX_S;