Consultas SQL Avanzadas: Ejemplos Prácticos para la Gestión de Datos
Clasificado en Diseño e Ingeniería
Escrito el en español con un tamaño de 2,65 KB
Consultas SQL Avanzadas
Ejercicios Resueltos
Listar los clientes (numclie, nombre) que remitieron pedidos del fabricante ACI y el número de producto comience por 4100, entre enero y el 15 de abril de 1990.
SELECT numclie, nombre FROM clientes WHERE numclie IN (SELECT clie from pedidos where fab='aci' AND substring (producto,1,4)='4100'AND(fechapedido > '01/01/1985' AND fechapedido < '15/04/1990'))
Listar los empleados (numemp, nombre) que realizaron un pedido que represente más del 1% de su cuota.
SELECT numemp, nombre FROM empleados WHERE numemp = ANY (SELECT rep FROM pedidos WHERE importe > (cuota * 0.01))
Listar los empleados que tengan una cuota superior a la cuota de alguno de sus compañeros de oficina. Es decir, los empleados que no tengan la menor cuota de la oficina.
SELECT * from empleados where cuota > any (SELECT cuota FROM empleados WHERE empleados.oficina=empleados.oficina)
Listar el numclie y los nombres de los clientes que tienen asignado el representante Juan Gris.
SELECT numclie, nombre FROM clientes WHERE repclie = ANY (SELECT numemp FROM empleados WHERE nombre = 'Juan Gris')
Listar los empleados que tengan la mayor cuota de la oficina.
SELECT numemp, nombre, edad, oficina, cuota, ventas FROM empleados WHERE cuota >=all (SELECT cuota FROM empleados WHERE empleados.oficina=empleados.oficina)
Listar los empleados que no tengan algún pedido del fabricante ACI.
SELECT * FROM empleados WHERE NOT EXISTS (SELECT * FROM pedidos WHERE fab='ACI' AND rep=numemp)
Listar los empleados (numemp, nombre y oficina) que no trabajan en oficinas dirigidas por el empleado 108.
SELECT numemp, nombre, oficina FROM empleados WHERE NOT EXISTS (SELECT * FROM oficinas WHERE dir = 108 AND empleados.oficina = oficinas.oficina)
Listar los productos (clave y descripción) de los que no se hizo ningún pedido de 10 € o más.
SELECT idfab, idproducto, descripcion FROM productos WHERE NOT EXISTS (SELECT * FROM pedidos WHERE idfab = fab AND idproducto = producto AND importe >= 10)
Listar las oficinas (oficina, ciudad) que tienen al menos un empleado que tenga una cuota que represente más del 55% del objetivo de la oficina.
SELECT oficina, ciudad FROM oficinas WHERE EXISTS (SELECT * FROM empleados WHERE oficinas.oficina = empleados.oficina AND cuota > (0.55*objetivo))