/*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