Subqueries o subconsultas en SQL Server

Las subqueries o subconsultas en SQL Server son utilizadas para obtener resultados de acuerdo con los datos de la consulta superior.

Una subquery puede estar dentro de las siguientes instrucciones:

En los ejemplos utilizare la base de datos de Northwind que podrás encontrar en el post siguiente.

¿Cómo se utiliza?

Veamos en un ejemplo como se puede utilizar una subconsulta en una instrucción select.

SELECT
	Products.ProductName,
	(SELECT CategoryName FROM Categories WHERE Categories.CategoryID = Products.CategoryID) AS 'Categoria'
FROM Products;
  • Declaramos una consulta select a la tabla Products.
  • Entre las columnas para los resultados agregamos una consulta, a este se le conoce como subquery.
  • Una subquery tiene que colocarse entre paréntesis.
  • La subquery realiza una consulta a la tabla categories, para obtener la categoría del producto.
  • Es necesario realizar la comparación de un campo de la tabla Products con el campo de la tabla Categories.

Con la instrucción anterior podemos ver el resultado siguiente:

Subconsultas en SQL server

Podría interesarte Renombrar tablas y columnas en SQL con alias  

Nota: las subconsultas solo pueden devolver un valor (campo), si no se especifica observaras el siguiente error.

Error en subqueries

El error anterior puede surgir de una consulta como la siguiente.

SELECT
	Products.ProductName,
	(SELECT * FROM Categories WHERE Categories.CategoryID = Products.CategoryID) AS 'Categoria'
FROM Products;

En las consultas de ejemplo podemos obtener la categoría de un producto utilizando inner join.

Así que los subqueries las podemos utilizar para realizar conteos o totales que afectan a la primera columna.

Por ejemplo, la siguiente consulta.

SELECT
	Employees.FirstName,
	(SELECT COUNT(*) FROM Orders WHERE Orders.EmployeeID = Employees.EmployeeID) AS 'Ventas totales'
FROM Employees;

En la consulta anterior obtengo el total de ventas por empleado utilizando subconsultas.

La estructura sigue siendo igual, únicamente cambiamos las tablas de consulta y respetando los puntos mencionados anteriormente.

El resultado de la instrucción es la siguiente.

Subqueries o subconsultas en SQL Server

Podría interesarte Consultar a SQL Server desde ASP.Net C#  

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *