Subconsultas SQL 2008

Páginas: 6 (1437 palabras) Publicado: 29 de noviembre de 2013
SUBCONSULTAS
Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en la
lista de selección o en la cláusula WHERE o HAVING, originalmente no se podían incluir en la
lista de selección.
Una subconsulta se denomina también consulta o selección interna, mientras que la
instrucción que contiene la subconsulta es conocida como consulta o selección externa.
Aparecesiempre encerrada entre paréntesis y tiene la misma sintaxis que una sentencia
SELECT normal con alguna limitación:
No puede incluir una cláusula COMPUTE o FOR BROWSE y sólo puede incluir una cláusula
ORDER BY cuando se especifica también una cláusula TOP.
Una subconsulta puede anidarse en la cláusula WHERE o HAVING de una instrucción externa
SELECT, INSERT, UPDATE o DELETE, o bien en otrasubconsulta. Se puede disponer de hasta
32 niveles de anidamiento, aunque el límite varía dependiendo de la memoria disponible y de
la complejidad del resto de las expresiones de la consulta. Hay que tener en cuenta que para
cada fila de la consulta externa, se calcula la subconsulta, si anidamos varias consultas, el
número de veces que se ejecutarán las subconsultas ¡puede dispararse!
Cuandola subconsulta aparece en la lista de selección de otra consulta, deberá devolver un
solo valor, de lo contrario provocará un error.
Ejemplo de subconsulta: Listar los empleados cuya cuota no supere el importe vendido por el
empleado.
SELECT nombre
FROM empleados
WHERE cuota (SELECT SUM(ventas)
FROM empleados

WHERE oficina = oficina);

La columna oficina se encuentra en los dosorígenes (oficinas y empleados) pero esta
consulta no dará error (no se nos pedirá cualificar los nombres como pasaría en una
composición de tablas), dentro de la subconsulta se considera oficina el campo de la
tabla empleados. Con lo que compararía la oficina del empleado con la misma oficina del
empleado y eso no es lo que queremos, queremos comparar la oficina del empleado con
la oficina deoficinas, lo escribiremos pues así para forzar a que busque la columna en la
tabla oficinas.
SELECT oficina, ciudad
FROM oficinas
WHERE objetivo > (SELECT SUM(ventas)
FROM empleados
WHERE oficina = oficinas.oficina);

Ejercicio paso a paso: Subconsultas de resultado único
Objetivo
Realizar consultas que incluyan una subconsulta en la cláusula WHERE. Se realizarán
utilizando operadores decomparación.

Ejercicio paso a paso
Listar todos los productos (código, descripción y stock) del fabricante ACI y cuyas
existencias superan las existencias del producto ACI-41004.
SELECT idfab, idproducto, descripcion, existencias
FROM productos
WHERE idfab = 'ACI'
AND existencias > (SELECT existencias
FROM productos
WHERE idfab = 'ACI' AND idproducto = '41004');
Resultado:
idfabidproducto descripcion existencias
aci 41001
arandela
277
aci

41002

bisagra

167

aci

41003

art 13

207

Listar los empleados (numemp, nombre y edad) que tienen una cuota por encima de la
media.
SELECT numemp, nombre, edad
FROM empleados
WHERE cuota > (SELECT AVG(cuota)

FROM empleados);

Resultado:
numemp
nombre
101
Antonio Viguer

edad
45

102

Alvaro Jaumes48

103

Juan Rovira

29

105

Vicente Pantalla

37

106

Luis Antonio

52

107

Jorge Gutiérrez

49

108

Ana Bustamante

62

114

Pablo Moreno

45

Obtener cuántos empleados tienen una cuota por encima de la media, y la edad media de
estos.
SELECT count(*) AS Cuantos, AVG(edad) AS [Edad Media]
FROM empleados
WHERE cuota > (SELECT AVG(cuota)

FROMempleados);

Resultado:
Cuantos Edad Media
8
45
Listar todas las oficinas cuyos objetivos superan la suma de las cuotas de sus vendedores.
SELECT oficina, ciudad
FROM oficinas
WHERE objetivo > (SELECT SUM(cuota)
oficinas.oficina);
Resultado:
oficina ciudad
11
Valencia
12

Alicante

FROM empleados WHERE oficina =

El operador IN con subconsulta
IN subconsulta
IN examina si...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • subconsultas SQL
  • Ensayo de Subconsultas SQL
  • Sql Server. Subconsultas.
  • Sql subconsultas
  • Manual sql server 2008
  • Sql Server 2008
  • Instalacion SQL 2008
  • tutorial sql 2008

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS