The document contains 15 SQL queries related to employees, departments, and work hours in a company database. The queries find information such as employees with a given education level, total work hours by employee, departments with more than 10 employees, employees who work in multiple departments, and other analyses of the data.
The document contains 15 SQL queries related to employees, departments, and work hours in a company database. The queries find information such as employees with a given education level, total work hours by employee, departments with more than 10 employees, employees who work in multiple departments, and other analyses of the data.
The document contains 15 SQL queries related to employees, departments, and work hours in a company database. The queries find information such as employees with a given education level, total work hours by employee, departments with more than 10 employees, employees who work in multiple departments, and other analyses of the data.
1. Naći zaposlene čija stručna sprema ima naziv Visoka.
SELECT * FROM Zaposleni AS Z, STR_Sprema AS S WHERE ( Z.[s_sprema_id] = S.[id] and S.naziv = 'Visoka'); 2. Za svakog radnika izlistati jmbg i ukupno radno vrijeme. SELECT JMBG, ime, sum(r_vrijeme) AS Ukupno_R_Vrijeme FROM zaposleni AS Z, radi AS R WHERE (Z.JMBG = R.zap_jmbg) GROUP BY JMBG, ime; 3. Za svaki departman izlistati naziv i broj radnika pod uslovom da je broj radnika veći od 10. SELECT D.naziv, count(zap_jmbg) AS BrojRadnika FROM departman AS D, radi AS R WHERE (D.ID=R.dept_id) GROUP BY D.naziv HAVING (count(zap_jmbg)>4); 4. Naći radnike koji rade u makar dva departmana. SELECT ime, JMBG FROM Zaposleni AS Z, Departman AS D, Radi AS R WHERE (Z.[JMBG] = R. [zap_jmbg] and R.[dept_id] = D.[ID]) GROUP BY z.[jmbg], ime HAVING count(D.id)>=2; 5. Naći parove JMBG, ID takve da radnik identifikovan sa JMBG ne radi u departmanu koji je identifikovan sa ID. SELECT JMBG, ID FROM Zaposleni AS Z, Departman AS D WHERE not exists (SELECT JMBG, ID FROM Zaposleni as Z1, Radi as R1, Departman as D1 WHERE ( Z1.[JMBG] = R1.[zap_jmbg] and R1.[dept_id] = D1.[ID] and Z.[JMBG] = Z1.[JMBG] and D.[ID] = D1.[ID])); 6. Naći najstarijeg radnika. SELECT ime FROM zaposleni WHERE god_rodj in (SELECT MIN(god_rodj) FROM zaposleni); 7. Naći departmane u kojima isključivo rade radnici rođeni poslije 1950. SELECT D.naziv, Z.ime FROM Departman as D, Zaposleni as Z, Radi as R WHERE Z.jmbg=R.zap_jmbg and D.id=R.dept_id and Z.god_rodj >1950 8. Naći radnika koji radi u svakom deprtmanu. SELECT Z.ime, count(*) FROM Radi AS R, Zaposleni AS Z WHERE Z.JMBG=R.ZAP_JMBG GROUP BY Z.ime HAVING count(*)=(select count(*) from departman); 9. Naći departman sa najvećim brojem radnika. SELECT TOP 1 * FROM (SELECT dept_id, count(*) AS br_rad FROM RADI GROUP BY dept_id) AS A ORDER BY br_rad DESC; 10. Naći departman u kojem nema radnika sa srednjom stručnom spremom. SELECT D.naziv FROM Zaposleni AS Z, Departman AS D, Radi AS R WHERE D.ID=R.DEPT_ID AND EXISTS ( SELECT * FROM Zaposleni AS Z, STR_Sprema AS S WHERE ( Z.[s_sprema_id] = S. [id] and S.naziv = 'Visoka' and S.naziv = 'Visa')); 11. Naći parove radnika koji su isto godište. SELECT Z1.ime, Z2.ime FROM Zaposleni AS Z1, Zaposleni AS Z2 WHERE Z1.god_rodj=Z2.god_rodj AND Z1.ime<>Z2.ime; 12. Naći parove departmana koji imaju isti broj radnika. SELECT D1.naziv, D2.naziv FROM (SELECT D.naziv, Count(R.dept_id) AS broj_radnika FROM Departman AS D, Radi AS R WHERE (((D.id)=[R].[dept_id]) GROUP BY D.naziv) as D1,(SELECT D.naziv, Count(R.dept_id) AS broj_radnika FROM Departman AS D, Radi AS R WHERE (((D.id)=[R].[dept_id]) GROUP BY D.naziv) as D2 WHERE D1.broj_radnika=D2.broj_radnika and D1.naziv<>D2.naziv 13. Naći stručnu spremu koju posjeduju makar dva radnika koji su angažovani u departmanu čiji je naziv IT. SELECT S.naziv FROM Departmen AS D, Radi AS R, Zaposleni AS Z, STR_Sprema AS S WHERE D.ID=R.dept_id AND R.zap_jmbg=Z.jmbg AND S.id=Z.S_sprema_id AND D.naziv='IT'; 14. Naći stručnu spremu koju posjeduju makar dva radnika koji su angažovani u departmanu koji ima najveći broj radnika. SELECT S.naziv FROM(SELECT* FROM Departmen AS D, Radi AS R, Zaposleni AS Z, STR_sprema AS S WHERE D.ID=R.dept_id AND R.zap_jmbg=Z.jmbg AND S.ID=Z.S_sprema_id)WHERE D.naziv=(SELECT MAX(D.naziv)FROM(SELECT D.naziv, COUNT(*) FROM Departmen AS D, Radi AS R, Zaposleni AS Z, STR_sprema AS S WHERE D.ID=R.dept_id AND R.zap_jmbg=Z.jmbg AND S.ID=Z.S_sprema_id GROUP BY D.NAZIV)); 15. Naći radnike čiji je ukupan broj sati rada veći od prosječnog ukupnog broja sati rada radnika
SELECT Z.ime,SUM(r_vrijeme) FROM Radi AS R, Zaposleni AS Z WHERE R.zap_jmbg=Z.jmbg and R.