Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- https://drive.google.com/drive/folders/0B6ujXwuml1o8RmhaOHV2TmJkRzA?ogsrc=32
- Lab 8
- -afis nume, ang, sal, dept, sal.mediu al dept IN care lucreaza fiecare ang
- cu subinterogarea corelata;
- SELECT ename, sal, deptno, (SELECT AVG(sal) FREOM emp b WHERE a.deptno = b.deptno) sal_mediu_dept
- FREOM emp a;
- cu subinterogare IN clauza FROM/JOIN:
- SELECT ename, sal, e.deptno, sal_med_dept
- FROM emp e, (SELECT deptno, AVG(sal) sal_med_dept FROM emp GROUP BY deptno) d
- WHERE e.deptno = e.deptno;
- 1. "Afişaţi pentru fiecare localitate lista meseriilor şi grupa salarială în care se încadrează salariul mediu al meseriei:"
- SELECT DISTINCT loc, e.job, grade
- FROM emp e, dept d, salgrade s, (SELECT job, AVG(sal) sal_med_job FROM emp GROUP BY job) x
- WHERE e.deptno = d.deptno
- AND e.job = x.job
- AND sal_med_job BETWEEN losal AND hisal;
- 7. "Numele salariaţilor care prin majorarea salariului cu 20% se încadrează în următoarea grupă salarială celei în care se
- aflau înaintea indexării salariului. "
- SELECT ename, sal, s1.grade, sal * 1.2, s2.grade
- FROM emp, salgrade s1, salgrade s2
- WHERE sal BETWEEN s1.losal AND s1.hisal
- AND sal * 1.2 BETWEEN s2.losal AND s2.hisal
- AND s1.grade + 1 = s2.grade;
- 10. "Numele angajatului, salariul mediu al grupei salariale în care se încadrează salariul său, salariul mediu al meseriei pe
- care o practică şi salariul mediu al localităţii în care lucrează pentru toţi angajaţii "
- SELECT ename, sal_med_gr, sal_med_job, sal_med_loc
- FROM emp e, dept d, salgrade s, (SELECT grade, AVG(sal) sal_med_gr FROM emp, salgrade WHERE sal BETWEEN losal AND hisal GROUP BY grade) x,
- (SELECT job, AVG(sal) sal_med_job FROM emp emp GROUP BY job) y,
- (SELECT loc, AVG(sal) sal_med_loc FROM emp, dept WHERE emp.deptno = dept.deptno GROUP BY loc) z
- WHERE e.deptno = d.deptno
- AND sal BETWEEN losal AND hisal
- AND s.grade = x.grade
- AND e.job = y.job
- AND d.loc = z.loc;
- 11. "Situaţia:
- Numele angajatului Colegi încadraţi în 1981 Colegi încadraţi 1982 Colegi încadraţi 1982 "
- SELECT a.ename , SUM(DECODE(TO_CHAR(c.hiredate, 'YYYY')'1981', 1, 0)) "Nr. Colegi 1981"
- SUM(CASE WHEN EXTRACT(YEAR FROM c.hiredate) = '1982' THEN 1 ELSE 0 END) "Nr. Colegi 1982"
- FROM emp a, emp c
- WHERE a.empno != c.empno
- AND a.deptno = c.deptno
- GROUP BY a.ename;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement