Las subconsultas son consultas dentro de otras consultas, pueden estar dentro de las columnas especificadas en el SELECT o como parte de las tablas de la cláusula FROM o como parte de las condiciones de la cláusula WHERE.
Cuando están dentro de la cláusula WHERE normalmente van acompañadas de algun operador como IN, NOT IN, EXISTS, NOT EXISTS o cualquier otro operador lógico como >, <, =.
Veamos algunos ejemplos
* Listado de todos los productos con la cantidad vendida (uso de subconsultas con referencia a consulta externa)
SELECT *,(SELECT SUM(det_cantidad) FROM Detalles D WHERE D.pr_id=P.pr_id)
FROM Productos P
Puede observarse que en este caso la subconsulta utiliza el valor de una columna de la fila actual de la consulta externa P.pr_id . Este es un caso en el que se puede resolver la consulta de varias maneras, entre ellas a través de subconsultas como en el ejemplo pero tambien se puede resolver a través de GROUP BY sin recurrir a subconsulta.
* Listado de todos aquellos clientes que no compraron nada en el año actual (Uso de NOT IN)
SELECT *
FROM Clientes
WHERE cl_id NOT IN
(SELECT cl_id FROM FactVent WHERE YEAR(fv_fecha)=YEAR(GETDATE())
No hay comentarios.:
Publicar un comentario