Advertisement
Guest User

sa

a guest
Jan 25th, 2020
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.87 KB | None | 0 0
  1. --2.    Znajdz pracowników, którzy zarabiaja powyzej sredniej w ich departamentach.
  2. SELECT * FROM emp e
  3. WHERE e.sal > (SELECT AVG(e2.sal)
  4.                FROM emp e2
  5.                WHERE e2.deptno=e.deptno);
  6.              
  7. --4. Znajdz za pomoca predykatu EXISTS pracowników, którzy posiadaja podwladnych
  8. SELECT *
  9. FROM emp e
  10. WHERE EXISTS (SELECT 1
  11.               FROM emp e2
  12.               WHERE e2.mgr = e.empno);
  13.  
  14. --5. Znajdz pracowników, których departament nie wystepuje w tabeli DEPT.
  15. SELECT *
  16. FROM emp e
  17. WHERE NOT EXISTS (SELECT 1
  18.                   FROM dept d
  19.                   WHERE d.deptno = e.deptno);
  20. --bez korelacji
  21. SELECT *
  22. FROM emp e
  23. WHERE e.deptno NOT IN (SELECT deptno
  24.                        FROM dept);
  25.  
  26. --9. Wskaz dla kazdego departamentu ostatnio zatrudnionych pracowników. Uporzadkuj wedlug dat zatrudnienia.
  27. SELECT *
  28. FROM emp e
  29. WHERE e.hiredate = (SELECT MAX(hiredate)
  30.                     FROM emp
  31.                     WHERE deptno=e.deptno);
  32.  
  33. --8
  34. SELECT e.ename, e.sal, s.grade
  35. FROM emp e JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal
  36. WHERE e.sal = (SELECT MIN(e2.sal)
  37.                FROM emp e2 JOIN salgrade s2 ON e2.sal BETWEEN s2.losal AND s2.hisal
  38.                WHERE s2.grade = s.grade)
  39. ORDER BY s.grade;
  40.  
  41.  
  42. --10.  Podaj nazwisko, pensję i nazwę departamentu pracowników,
  43. --których płaca przekracza średnią ich grup zarobkowych.
  44. SELECT e.ename, e.sal, e.deptno, s.grade
  45. FROM emp e JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal
  46. WHERE e.sal >  (SELECT AVG(e2.sal)
  47.                 FROM emp e2 JOIN salgrade s2 ON e2.sal BETWEEN s2.losal AND s2.hisal
  48.                 WHERE s2.grade = s.grade);
  49.                
  50. --11.   Stosujac podzapytanie znajdz departamenty, w których nikt nie pracuje.
  51. SELECT *
  52. FROM dept d
  53. WHERE NOT EXISTS (SELECT 1
  54.                   FROM emp e
  55.                   WHERE e.deptno=d.deptno);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement