Vous êtes sur la page 1sur 6

EJEMPLOS DE SUBCONSULTAS 1º DE A.S.I.R.

CURSO 2015/2016

EJEMPLOS DE SUBCONSULTAS
➢ Máximo número de suministradores de cada pieza.
En la subconsulta lo que hacemos es contar (COUNT) el número de
suministradores de cada pieza (agrupamos respecto a numpieza). Posteriormente
obtenemos el máximo (MAX) de los valores obtenidos en la subconsulta. Fíjate
que hemos renombrado el COUNT de la subconsulta llamándolo Cantidades para
poder usarlo dentro del MAX (si pusiéramos MAX(COUNT(*)) nos daría un error),
también se ha puesto nombre a la subconsulta (ejemplo_subconsulta_from) ya
que es obligatorio hacerlo.

➢ Número y nombre de las piezas con preciovent mayor.


En la subconsulta obtenemos el valor máximo (MAX) de todos los preciovent de
la tabla pieza. En la consulta mostraremos aquellas piezas que tienen un
preciovent igual al valor obtenido en la subconsulta.

GESTIÓN DE BASES DE DATOS PÁGINA 1


EJEMPLOS DE SUBCONSULTAS 1º DE A.S.I.R. CURSO 2015/2016

En esta segunda forma de resolver el ejercicio la subconsulta nos devuelve un


conjunto de valores que contiene todos los preciovent de las piezas.
Posteriormente en el WHERE de la consulta usamos el operador de conjuntos ALL
para seleccionar aquellas piezas cuyo preciovent es mayor o igual que todos los
valores que me devuelve la subconsulta (así seleccionaré sólo los que tienen el
mayor valor de preciovent).

➢ Piezas con preciovent mayor o igual que preciovent de algún teclado.


La subconsulta me devuelve un conjunto de valores con el preciovent de las
piezas que son teclados. En la consulta añado la condición de que las piezas ha de
tener un preciovent mayor o igual que alguno (operador de conjuntos ANY o
SOME) de los valores de la subconsulta.

GESTIÓN DE BASES DE DATOS PÁGINA 2


EJEMPLOS DE SUBCONSULTAS 1º DE A.S.I.R. CURSO 2015/2016

➢ Piezas con preciovent mayor que todos los preciovent de los teclados.
Al igual que el ejemplo anterior la subconsulta me devuelve un conjunto de
valores con los preciovent de los teclados pero ahora la condición que añado en el
WHERE de la consulta es que el preciovent sea mayor que todos (operador de
conjuntos ALL) los preciovent que me devuleve la subconsulta.

GESTIÓN DE BASES DE DATOS PÁGINA 3


EJEMPLOS DE SUBCONSULTAS 1º DE A.S.I.R. CURSO 2015/2016

➢ Mostrar numpieza y numvend de aquellas piezas que tienen menos de 4


suministradores.
La subconsulta me devuelve el conjunto de piezas que tienen menos de 4
suministradores, para ello agrupo por numpieza y pongo como condición que al
contar las filas resultantes de la agrupación (COUNT) sean menos de 4.
Posteriormente en la consulta principal sobre la tabla preciosum (quiero mostrar
numpieza y numvend) mostraré aquellas piezas (operador de conjuntos IN) que se
encuentran en el conjunto de numpieza que me devuelve la subconsulta.

➢ Mostrar numpieza de aquellas piezas que tienen menos de 4 suministradores.


Este ejemplo es similar al anterior, sólo cambia en que como sólo me pide el
numpieza no necesito trabajar con la tabla preciosum y en el FROM de la consulta
principal pongo la tabla pieza en lugar de preciosum. Fíjate que el ejercicio
anterior nos devuelve 30 filas y este únicamente 15.

GESTIÓN DE BASES DE DATOS PÁGINA 4


EJEMPLOS DE SUBCONSULTAS 1º DE A.S.I.R. CURSO 2015/2016

➢ Piezas sin suministrador.


En la subconsulta nos devuelve el conjunto de las piezas que tienen suministrador
(aparecen en la tabla preciosum). En la consulta principal trabajamos con la tabla
pieza y seleccionamos aquellas que no están incluidas (operador de conjuntos IN
con la negación NOT delante) en el conjunto de valores que genera la
subconsulta.

➢ Numpieza y Numvend de aquellas piezas que tienen menos de 4


suministradores.
Aunque este enunciado te es bastante familiar (ver un poco más arriba) vamos a
ver como resolvemos este ejercicio con el operador EXISTS. Es importante ver que
existe una interrelación entre la consulta y la subconsulta, de hecho en el WHERE
de la subconsulta hacemos referencia al valor de numpieza de la consulta
principal (de ahí que como trabajamos con la misma tabla las tengo que
renombrar como A y B).
El funcionamiento es el siguiente, para cada pieza de preciosum comprueba en la
subconsulta si es cierto (operador EXISTS) que tenemos menos de 4
suministradores (COUNT) de esa pieza en concreto. Si es cierto entonces en la
consulta principal me muestra el numpieza y el numvend ya que se cumple el
EXISTS, en otro caso no muestra nada y pasa a la siguiente fila que tengo en
preciosum.

GESTIÓN DE BASES DE DATOS PÁGINA 5


EJEMPLOS DE SUBCONSULTAS 1º DE A.S.I.R. CURSO 2015/2016

➢ Mostrar numpieza de aquellas piezas que tienen menos de 4 suministradores.


Este ejemplo también lo hemos resuelto anteriormente, aquí al trabajar con
distintas tablas no hace falta renombrarlas.

➢ Mostrar numpieza, nompieza, preciovent y la diferencia con la media de


precios de venta.
En subconsulta obtenemos el promedio (AVG) de los preciovent de las piezas
para, a continuación, restárselo al preciovent cada pieza en cuestión creando un
campo calculado. Aunque no es obligatorio, se ha renombrado (AS) el campo
calculado como Diferencia para que en el resultado de la consulta quede más
claro el contenido de cada campo.

GESTIÓN DE BASES DE DATOS PÁGINA 6

Vous aimerez peut-être aussi