Professional Documents
Culture Documents
SUBCONSULTAS
Para cada oficina, la consulta interna (Subconsulta) calcula la suma de las cuotas
para los vendedores que trabajan en esa oficina. La consulta externa (consulta
principal) Compara el objetivo de la Oficina con el total calculado y decide si
aadir la oficina a los resultados de la consulta principal.
1
4) Test de comparacin cuantificada: Compara el valor de una expresin con cada
uno del conjunto de valores producido por una subconsulta en dos formas ANY
y ALL.
Ejemplo adicional: Listar todos los clientes atendidos por Bill Adams
Compara un nico valor de datos con una columna de valores producida por una
subconsulta y devuelve el resultado TRUE si el valor coincide con uno de los
valores de la columna.
Este test se utiliza cuando se necesita comparar un valor de la fila que est siendo
examinada con un conjunto de valores producidos por una subconsulta.
Formato:
Ejemplo: Mostrar los vendedores que trabajan en Oficinas que superen su objetivo
Mostrar los vendedores que no trabajan en oficinas dirigidas por Larry Fitch
(empleado 108)
Select Num_empl, Nombre FROM REPVENTAS
2
WHERE Oficina_rep NOT IN (Select Oficina
FROM OFICINAS
WHERE Dir = 108)
Mostrar las Oficinas en donde haya un vendedor cuya cuota representa ms del
55% del objetivo de la oficina:
Select Ciudad FROM OFICINAS
WHERE EXISTS (Select * FROM Repventas
WHERE Oficina_rep = Oficina
AND Cuota > (.55 * Objetivo))
3
Opcin ANY: con el operador se compara un nico valor de test con una columna
de valores producidos por una subconsulta, uno cada vez. Si alguna de las
comparaciones individuales produce un resultado TRUE, el test ANY devuelve el
resultado TRUE.
Ejemplo: Mostrar los vendedores que hayan aceptado un pedido que represente
ms del 10% de su cuota.
Select Num_empl, Nombre FROM Repventas
WHERE (.1 * Cuota) < Any (Select Importe
FROM PEDIDOS
WHERE Rep = Num_Empl).
Opcin All: se utiliza idntico al ANY con uno de los seis operadores de
comparacin SQL, para comparar un nico valor de test con una columna de
valores de datos producidos por una subconsultas. Si todas las comparaciones
individuales producen un resultado TRUE, el test ALL devuelve un resultado
TRUE.
Ejemplo: Mostrar las Oficinas y sus objetivos en donde todos los vendedores
tienen ventas que superan al 50% del objetivo de la Oficina.
ANIDAMIENTO DE SUBCONSULTAS
SUBCONSULTAS Y COMPOSICIONES
Es dependiente del problema que las consultas con subconsultas se pueden
expresar en forma equivalente a consulta multitabla, como tambin hay casos que
no se pueden expresar equivalentemente.
4
Ejemplo: Mostrar los nombres y edades de los vendedores que trabajan en
oficinas de la regin Oeste
Como tambin hay muchas consultas con subconsultas que no pueden ser
traducidas a una composicin equivalente, como:
Mostrar los nombres y edades de los vendedores que tienen cuotas por encima
del promedio.
SUBCONSULTAS CORRELACIONADAS
Ejemplo: Mostrar las oficinas cuyos objetivos exceden a la suma de las cuotas de
los vendedores que trabajan en ellas.
Nota: Esta separata ha sido elaborada con la referencia del libro Aplique SQL de James R. Groff y Paul N.
Weinberg.