Una subconsulta en SQL consiste en utilizar los resultados de una consulta dentro de otra, que se considera la principal. La subconsulta (comando SELECT entre paréntesis) se ejecuta primero y, posteriormente, el valor extraído es utilizado en la consulta principal.
SELECT pagoneto as salario FROM empleados WHERE salario > (SELECT AVG(salario) AS Salario_Medio FROM empleados)
Una subconsulta siempre forma parte de la condición de selección en las cláusulas WHERE o HAVING. El resultado de una subconsulta puede ser un valor simple o más de un valor. Según el retorno de la subconsulta, el operador de comparación que se utilice en la condición de selección del WHERE o HAVING deberá ser del tipo apropiado según la tabla siguiente:
1. Obtener todos los empleados que tienen el mismo oficio que ‘Alonso’.
SELECT emp_no AS idEmpleado, apellido, oficio FROM empleados WHERE oficio=(SELECT oficio FROM empleados WHERE UCASE(apellido)= ‘ALONSO’)
2. Obtener información de los empleados que ganan más que cualquier empleado del departamento de contabilidad.
SELECT emp_no As idEmpleado, apellido, salario, dep_no AS Departamento FROM empleados WHERE salario> (SELECT MAX(salario) FROM empleados WHERE dep_no=’contabilidad’)
3. Visualizar el número de vendedores del departamento de ventas.
SELECT COUNT(*) as Total_Empleados FROM empleados WHERE dep_no=(SELECT dep_no FROM departamentos WHERE UCASE(dnombre)=’VENTAS’) AND Upper(oficio)=’VENDEDOR’