Sunteți pe pagina 1din 2

BAZE DE DATE SEMINAR 12

_____________________________________________________________________
Exercitii recapitulative III Interogari, functii de grup, CASE, DECODE
In aceste exercitii utilizati tabelele My_emp, My_dept si My_jobs create pe baza
tabelelor Employees, Departmens si Jobs din schema (user-ul) HR. Utilizati
comenzilede mai jos pentru a crea aceste tabele:
DROP TABLE MY_EMP;
DROP TABLE MY_DEPT;
DROP TABLE MY_JOBS;
CREATE TABLE MY_EMP AS SELECT * FROM HR.EMPLOYEES;
CREATE TABLE MY_DEPT AS SELECT * FROM HR.DEPARTMENTS;
CREATE TABLE MY_JOBS AS SELECT * FROM HR.JOBS;
Exercitii:
1. Sa se calculeze pe fiecare departament (department_name) suma totala
corespunzatoare salariilor angajatilor, denuminind coloana respectiva
total_salarii.
2. Sa se calculeze urmatoarele statistici pe fiecare tip de functie (job_title):
salariul minim, salariul mediu si salariul maxim corespunzator fiecarei functii.
3. Modificati conditia de sus astfel incat sa se afiseze si numarul total de angajati
care detin o anumit functie.
4. Sa se calculeze numarul de angajati pe fiecare departament.
5. Sa se calculeze numarul de angajati din departamentele: Purchasing, Shipping,
IT.
6. Sa se calculeze numarul de salariati angajati inainte de 15 august 2000
(hire_date).
7. Sa se afiseze doar departamentele care au un numar de angajati >5. Sa se
calculeze pentru aceste departamente suma total de plata referitoare la salarii.
8. Sa se afiseze numai departamentele care platesc salarii totale cu valoarea mai
mare de 20000. Sa se calculeze pentru acestea salariul mediu pe department.
9. Sa se calculeze pe fiecare functie in parte suma totala incasata formata din
salariu * (1+comisionul) aferent. Sa se afiseze doar functiile cu valori peste
25000.
10. Realizati o statistica pe fiecare department (department_id) si pe fiecare
functie din departamente (job_id) referitoare la salariul minim, salariul mediu,
salariul maxim si numarul total de angajati.
11. Sa se afiseze numele angajatilor si sa se mareasca salariile in functie de
departament astfel:
- Daca department_id= 20 atunci cresterea sa fie de 10%
- Daca department_id= 40 atunci cresterea sa fie de 15%
- Daca department_id= 60 atunci cresterea sa fie de 20%
- In rest sa nu se aplice cresteri salariale.
12. Sa se afiseze numele, salariul si functia angajatiilor, precum si suma de incasat
astfel:
- daca job_id este SA_REP sau SA_MAN atunci suma_incasat = salary*
(1+commission_pct)
- daca job_id este IT atunci suma_incasat = salary*1.2
- pentru celelalte functii suma_incasat = salary
13. Sa se acorde prime fiecarui angajat in functie de vechime astfel:
- Pentru cei angajati inainte de 1 ianuarie 1995 prima=30%*salary
1

BAZE DE DATE SEMINAR 12

_____________________________________________________________________
- Pentru cei angajati inainte de 1 ianuarie 1997 prima=20%*salary
- Pentru cei angajati inainte de 1 ianuarie 2000 prima=10%*salary
- Pentru ceilalti angajati prima = 5%*salary
14. Sa se rezolve punctul de mai sus cu ajutorul operatorului UNION.
15. Sa se calculeze valoarea comisionului pentru fiecare angajat si folosind
operatorul MINUS sa se elimine angajatii care nu au comision (este null).

S-ar putea să vă placă și