Índice
1. Introducción2. Palabras Clave
3. Problema
4. Solución
5. Discusión del Problema
5.1 Subconsulta no correlacionada
6. Práctica: Comprobación Existencia en Consulta No Correlacionada
7. Conclusiones
8. Literatura & Enlaces
1. Introducción
Esta nueva receta T-SQL presenta el mecanismo de comprobación a través de un predicado en la cláusula WHERE en el que se incluye resultado devuelto por una subconsulta no correlacionada.
2. Palabras Clave
- Predicado
- Subconsulta
- Subconsulta no correlacionada
3. Problema
Comprobar un valor de una consulta exterior contra un valor devuelto por una subconsulta en un predicado de la cláusula WHERE.
4. Solución
En una cláusula WHERE se puede comparar el valor de un campo de la consulta exterior frente a único valor devuelto por una subconsulta. Esta subconsulta recibe el nombre de subconsulta no correlacionada.
5. Discusión de la Solución
5.1 Subconsulta no correlacionada
Una subconsulta no correlacionada no depende de valores de una consulta exterior (como sí ocurre con una subconsulta correlacionada -Receta T-SQL No. 4-7: ¿Cómo Comprobar la Existencia de un Registro?-).
Como ejemplo de este tipo de subconsulta se podría tener
SELECT Name AS 'Nombre', ReorderPoint AS 'Punto de Reorden'
FROM Production.Product
WHERE ReorderPoint > (SELECT AVG(ReorderPoint)
FROM Production.Product);
Nótese cómo en la cláusula WHERE se comprueba que el punto de reorden -ReorderPoint- sea mayor que el promedio retornado por la subconsulta correlacionada (Sentencia SELECT entre paréntesis.).
6. Práctica: Comprobación Existencia en Consulta No Correlacionada
En este ejemplo se obtienen los datos
- BusinessEntityID,
- SalesQuota, y
- CurrentSalesQuota
de un vendedor -Sales.SalesPerson- que su cuota de venta sea igual a la cuota mayor entre todos los vendedores.
SELECT BusinessEntityID AS 'ID Vendedor',
SalesQuota AS 'Cuota de Ventas'
FROM Sales.SalesPerson
WHERE SAlesQuota = (SELECT MAX(SalesQuota)
FROM Sales.SalesPerson);
La consulta no correlacionada en la cláusula WHERE obtiene el valor de comparación: la cuota de ventas mayor entre todos los vendedores.
Los resultados que obtienen de esta consulta al ejecutarla en Microsoft SQL Server Management Studio son:
Figura 2. Vendedores con la cuota de ventas mayor. |
7. Conclusiones
Se presentó el uso básico de una consulta no correlacionada para la obtención de un único valor que sirve de comparación para una predicado de la cláusula WHERE.
La próxima receta T-SQL enseña cómo comparar los subconjuntos de una tabla.
8. Literatura & Enlaces
Brimhall, J., Dye, D., Gennick, J., Roberts, A., Sheffield, W. (2012). SQL Server 2012 T-SQL Recipes - A Problem-Solution Approach. United States: Apress.Receta T-SQL No. 4-7: ¿Cómo Comprobar la Existencia de un Registro? (2016, junio 8). Recuperado desde: http://ortizol.blogspot.com/2016/06/receta-t-sql-no-4-7-como-comprobar-la-existencia-de-un-registro.html
V
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.