Historia wymaga pasterzy, nie rzeźników.

Których pracowników departamenty mieszcz¹ siê w Dallas
2. Którzy pracownicy dzia³u 20 nie maj¹ stanowisk wystêpuj¹cych w dziale 10
3. Kto zarabia wiêcej ni¿ którakolwiek osoba na stanowisku Manager
4. Którzy pracownicy z dzia³u 20 zarabiaj¹ wiêcej od pracowników z dzia³u 30
5. Podaæ nazwiska pracowników maj¹cych podw³adnych
6. Podaæ departamenty w których nikt nie pracuje
7. Podaæ nazwiska i stanowiska osób, zatrudnionych w departamentach w których ró¿nica miêdzy maksymalnymi a minimalnymi zarobkami jest wiêksza lub równa œrednim zarobkom w departamencie
8. Podaæ nazwisko, stanowisko osób zatrudnionych w departamentach, dla których max(sal)-min(sal)=avg(sal)+25 (avg - w poszczególnych departamentach)
9. Podaæ nazwiska osób, dla których ró¿nica stopnia wynagrodzenia wynosi 4 lub 3
1)
SELECT ename,loc FROM emp,dept WHERE loc='DALLAS' AND dept.deptno=emp.deptno;
2)
SELECT e1.ename, e1.job FROM emp e1 WHERE e1.deptno=20 AND NOT EXISTS (SELECT e2.job FROM emp e2 WHERE e1.job==e2.job AND e2.deptno=10); <-- ERROR
3)
SELECT ename,job,sal FROM emp e1 WHERE NOT EXISTS (SELECT ename FROM emp e2 WHERE e2.sal > e1.sal AND e2.job='MANAGER');
SELECT ename,job,sal FROM emp e1 WHERE sal > (SELECT MIN(sal) FROM emp e2 WHERE e2.job='MANAGER');
(* trochê inne wyniki dla osób na job='MANAGER')
4)
SELECT ename,job,sal FROM emp e1 WHERE deptno=20 AND sal > (SELECT MAX(sal) FROM emp e2 WHERE e2.job=e1.job AND e2.deptno=30);
SELECT ename,job,sal FROM emp e1 WHERE deptno=20 AND NOT EXISTS (SELECT sal FROM emp e2 WHERE e2.job=e1.job AND e2.deptno=30); <-- ZLY WYNIK
5)
SELECT ename FROM emp e1 WHERE EXISTS (SELECT ename FROM emp e2 WHERE e2.mgr=e1.empno);
6)
SELECT * FROM dept WHERE NOT EXISTS (SELECT ename FROM emp WHERE emp.deptno=dept.deptno);
7)
SELECT * FROM emp GROUP BY deptno HAVING MAX(sal) - MIN(sal) >= AVG(sal); <-- ERROR
8)
9)
SELECT e1.ename, e2.ename FROM emp e1, salgrade s1 WHERE (e1.sal BETWEEN s1.losal AND s1.hisal) AND
(SELECT e2.ename FROM emp e2,salgrade s2 WHERE (e2.sal BETWEEN s2.losal AND s2.hisal) AND s1.grade-s2.grade >= 3);