Subconsultas Base De Datos
Una subconsulta es una instrucción SELECT anidada
dentro de una instrucción SELECT, SELECT...INTO,
INSERT...INTO, DELETE, o UPDATE o dentro de otrasubconsulta.
Puede utilizar tres formas de sintaxis para crear
una subconsulta:
◦ comparación [ANY | ALL | SOME] (instrucción sql)
◦ expresión [NOT] IN (instrucción sql)
◦ [NOT] EXISTS (instrucción sql)Se puede utilizar una subconsulta en lugar de una
expresión en la lista de campos de una instrucción
SELECT oen una cláusula WHERE o HAVING.
El predicado IN se emplea para recuperarúnicamente aquellos registros de la consulta
principal para los que algunos registros de la
subconsulta contienen un valor igual .
El ejemplo siguiente devuelve todos los productos
vendidos con undescuento igual o mayor al 25 por
ciento.:
◦ SELECT * FROM Producto WHERE IDProd IN (SELECT IDProd
FROM DetallePedido WHERE Descuento >= 0.25);
PRODUCTO
IdProd
PrecioUnidad
StockDETALLEPEDIDO
NumP
IdProd
PrecioUnidad
Descuento
PEDIDO
NumP
Fecha
Total
El ejemplo siguiente devuelve todos los
productos cuyo precio unitario es mayor que
el de cualquier productovendido con un
descuento igual o mayor al 25 por ciento.:
SELECT * FROM Producto WHERE PrecioUnidad > ANY (SELECT
PrecioUnidad FROM DetallePedido WHERE Descuento >= 0
.25);
PRODUCTO
IdProdPrecioUnidad
Stock
DETALLEPEDIDO
NumP
IdProd
PrecioUnidad
Descuento
PEDIDO
NumP
Fecha
Total
Se puede utilizar también alias del nombre de la tabla en una
subconsulta parareferirse a tablas listadas en la cláusula
FROM fuera de la subconsulta.
El ejemplo siguiente devuelve los nombres de los empleados
cuyo salario es igual o mayor que el salario medio de todos
losempleados con el mismo título. A la tabla Empleados se le
ha dado el alias T1:
◦ SELECT Apellido, Nombre, Titulo, Salario FROM Empleado AS T1 WHERE Salario >=
(SELECT Avg(Salario) FROM Empleado WHERE...
Regístrate para leer el documento completo.