Está en la página 1de 2

/*1 ¿Cuál es la cuota media y las ventas medias de todos los empleados?

*/

SELECT e.nombre, AVG(e.minimo) as 'cuota media', AVG(e.ventas) as 'ventas medias'


FROM empleados e
GROUP BY e.nombre;

/*2 Hallar el importe medio de pedidos, el importe total de pedidos y el precio medio
de venta (el precio de venta es el precio unitario en cada pedido). */

/*3 Hallar el precio medio de los productos del fabricante ACI.*/

SELECT AVG(p.precio) as 'media precio productos ACI'


FROM productos p
WHERE p.idfab LIKE 'ACI'

/*4 ¿Cuál es la cantidad total de los pedidos realizados por el empleado Vicente 4
¿Cuál es la cantidad total de los pedidos realizados por el empleado
Vicente Delgado? */

SELECT SUM(p.cantidad)
FROM empleados e INNER JOIN pedidos p ON e.num=p.repre
WHERE e.nombre LIKE 'Vicente Delgado%'

/*5 Hallar en qué fecha se realizó el primer pedido (suponiendo que en la tabla de
pedidos tenemos todos los pedidos realizados hasta la fecha) */

SELECT MIN(p.fpedido) as 'fecha primer pedido'


FROM pedidos p

/*6 Hallar cuántos productos tienen una cantidad de stock de más de 200.*/

SELECT COUNT(p.stock) as ‘Producto’


FROM productos p
WHERE p.stock>200

/*7 Listar cuántos empleados están asignados a cada oficina, indicar el número de
oficina y cuántos hay asignados*/

SELECT e.oficina, COUNT(*)


FROM empleados e
GROUP BY e.oficina
/*8 Para cada empleado, obtener su número, nombre, y cantidad vendida por ese
empleado a cada cliente indicando el número de cliente. */

SELECT p.repre, e.nombre, COUNT(p.cantidad) as 'ventas', p.cliente


FROM pedidos p INNER JOIN empleados e ON p.repre=e.num
GROUP BY p.repre

/*9 Para cada empleado cuyos pedidos suman más de 50 unidades, hallar su cantidad
media de pedidos. En el resultado indicar el número de empleados y su cantidad
media de pedidos.*/
SELECT p.repre, AVG(p.cantidad) AS 'cantidad media pedidos'
FROM pedidos p
GROUP BY p.repre
HAVING SUM(p.cantidad) > 50;

/*10 Listar de cada producto, su descripción, precio y cantidad total pedida,


incluyendo sólo los productos cuya cantidad total pedida sea superior al 75% del
stock; y ordenado por cantidad total pedida. */ cuando uso el HAVING tengo que
poner todo en SELECT
SELECT p.descripcion, p.precio, SUM(pe.cantidad) as 'cantidad productos', p.stock
FROM productos p INNER JOIN pedidos pe ON p.idproducto=pe.producto
GROUP BY p.idproducto
HAVING SUM(pe.cantidad)>0.75*p.stock
ORDER BY 3;

/*11 Saber cuántas oficinas tienen empleados con ventas superiores a su cuota, no
queremos saber cuales sino cuántas hay.*/
SELECT DISTINCT COUNT(*) as 'oficinas'
FROM empleados e
WHERE e.ventas>e.minimo

También podría gustarte