You are on page 1of 2

Introduction to Oracle: SQL and PL/SQL, Instructor Guide, Volumen 1

Práctica 7: Sub-Consultas de Varias Columnas


--------------------------------------------------------------------

Ejercicio 1:
Escribe una consulta para mostrar el nombre del empleado, el número de dep
artamento, y el salario de cualquier empleado
cuyo número de departamento y salario corresponden al número de depa
rtamento y salario de cualquier empleado que gana una comisión.
SQL> SELECT ename, deptno, sal
FROM EMP
WHERE ( deptno, sal ) IN
( SELECT deptno, sal
FROM EMP
WHERE comm IS NOT NULL);

Ejercicio 2:
Muestre el nombre de empleado, el nombre de departamento, y el salario d
e cualquier empleado cuyo salario y comisión corresponden
al salario y comisión de cualquier empleado localizado en 'DALLAS'
.
SQL> SELECT ename, dname, sal
FROM EMP e, DEPT d
WHERE e.deptno = d.deptno
AND ( sal, NVL( comm, 0 ) ) IN
( SELECT sal, NVL( comm, 0 )
FROM EMP e, DEPT d
WHERE e.deptno = d.deptno
AND d.loc = 'DALLAS');

Ejercicio 3:
Cree una consulta para mostrar el nombre de empleado, la fecha de contra
tación, y el salario para todos los empleados que tienen
(salario y comisión) ambos los mismos como el que tiene el emplead
o SCOTT.
Nota: No incluya a SCOTT en el conjunto resultado.
SQL> SELECT ename, hiredate, sal
FROM EMP
WHERE ( sal, NVL( comm , 0 ) ) IN
( SELECT sal, NVL( comm,
0 )
FROM EMP
WHERE ename LIKE 'SCOT
T' )
AND ename <> 'SCOTT';
Ejercicio 4: Cree una consulta para mostrar los empleados que ganan un salari
o mayor que el salario de todos los que son oficinistas ('CLERK').
Ordene el resultado por el valor del salario desde el mas alto a
l mas bajo.
SQL> SELECT ename, job, sal
FROM EMP
WHERE sal > ALL
( SELECT MAX( sal )
FROM EMP
WHERE job LIKE 'CLERK'
GROUP BY job )
ORDER BY sal DESC;

You might also like