Salta el contingut

Jardineria - Consultes Resum

  1. Quants empleats hi ha a l'empresa?

    Possible solució
    SELECT COUNT(*)
    FROM empleado;
    
  2. Quants clients té cada pais?

    Possible solució
    SELECT pais, COUNT(*)
    FROM cliente
    GROUP BY pais;
    
  3. Quin va ser l'import mitjana de pagaments de l'any 2009?

    Possible solució
    SELECT AVG(total)
    FROM pago
    WHERE YEAR(fecha_pago) = 2009;
    
  4. Quantes comandes tenim en cadascun dels estats? Ordena el resultat de forma descendent pel nombre de comandas.

    Possible solució
    SELECT estado, COUNT(*)
    FROM pedido
    GROUP BY estado
    ORDER BY COUNT(*) DESC;
    
  5. Calcula el preu de venta del producte més car i més barat en una mateixa consulta.

    Possible solució
    select MAX(precio_venta), MIN(precio_venta)
    FROM producto;
    
  6. Calcula el número de clients que té l'empresa.

    Possible solució
    SELECT COUNT(*)
    FROM cliente;
    
  7. Quants clients hi ha amb domicili a la ciutat de Madrid?

    Possible solució
    SELECT COUNT(*)
    FROM cliente
    WHERE ciudad = 'Madrid';
    
  8. Calcula quants clients té cadascuna de les ciutats amb el nom que comança per la lletra M.

    Possible solució
    SELECT ciudad, COUNT(*)
    FROM cliente
    WHERE ciudad LIKE 'M%'
    GROUP BY ciudad;
    
  9. Retorna el nom dels representants de vendes i el número de clients que té cadascú.

    Possible solució
    Estem fent sortir als Representants de Vendes sense clients
    SELECT nombre, apellido1, apellido2, COUNT(cliente.codigo_cliente)
    FROM empleado e LEFT JOIN cliente ON (e.codigo_empleado = cliente.codigo_empleado_rep_ventas)
    WHERE e.puesto = 'Representante Ventas'
    GROUP BY e.codigo_empleado, nombre, apellido1, apellido2;
    
  10. Calcula el número de clients que no té assignat representant de vendes.

    Possible solució
    SELECT COUNT(*)
    FROM cliente
    WHERE codigo_empleado_rep_ventas IS NULL;
    
  11. Calcula la data del primer del darrer pagament realitzat por cadascun dels clients. La llista ha mostrar el nom de cada client i la data mínima i màxima de pagament.

    Possible solució
    SELECT nombre_cliente, MIN(p.fecha_pago), MAX(p.fecha_pago)
    FROM cliente c NATURAL JOIN pago p
    GROUP BY codigo_cliente;
    
  12. Calcula el nombre de productes diferents que hi ha a cada comanda.

    Possible solució
    SELECT codigo_pedido, COUNT(DISTINCT codigo_producto)
    FROM detalle_pedido
    GROUP BY codigo_pedido;
    
  13. Calcula la suma de la quantitat total de tots els productes que apareixen a cadascuna de les comandes.

    Possible solució
    SELECT codigo_pedido, SUM(cantidad)
    FROM detalle_pedido
    GROUP BY codigo_pedido;
    
  14. Retorna una llista dels 20 productes més venuts i el nombre total d'unitats que s'han venut de cadascun. La llista ha d'estar ordenada pel nombre total d'unitats venudes.

    Possible solució
    SELECT pr.nombre, SUM(cantidad)
    FROM producto pr NATURAL JOIN detalle_pedido
    GROUP BY pr.codigo_producto, pr.nombre
    ORDER BY 2 DESC
    LIMIT 20;
    
  15. Mostra la facturació que ha tingut l'empresa en toda la història, indicant la base imposable, l'IVA i el total facturat. La base imposable es calcula sumant el cost del producte pel número d'unitats venudes de la taula detalle_pedido. L'IVA és el 21 % de la base imposable, i el total, la suma dels dos camps anteriors.

    Possible solució
    SELECT SUM(cantidad * precio_unidad) "Base Imposable",
           SUM(cantidad * precio_unidad) * 0.21 "IVA", 
           SUM(cantidad * precio_unidad) * 1.21 "Total"
    FROM detalle_pedido;
    
  16. La mateixa informació que a la pregunta anterior, però agrupada per codi de producte.

    Possible solució
    SELECT codigo_producto,
           SUM(cantidad * precio_unidad) "Base Imposable",
           SUM(cantidad * precio_unidad) * 0.21 "IVA", 
           SUM(cantidad * precio_unidad) * 1.21 "Total"
    FROM detalle_pedido
    GROUP BY codigo_producto;
    
  17. La mateixa informació que a la pregunta anterior, però agrupada per codi de producte, filtrada pels codis que comencin per OR.

    Possible solució
    SELECT codigo_producto,
           SUM(cantidad * precio_unidad) "Base Imposable",
           SUM(cantidad * precio_unidad) * 0.21 "IVA", 
           SUM(cantidad * precio_unidad) * 1.21 "Total"
    FROM detalle_pedido
    WHERE codigo_producto LIKE 'OR%'
    GROUP BY codigo_producto;
    
  18. Llista les vendes totals dels productes que han facturat més de 3000 euros. Es mostrarà el nom del producte, unitats venudes, total facturat i total facturat amb impostos (21% IVA).

    Possible solució
    SELECT nombre,
           SUM(cantidad) "Unitats", 
           SUM(cantidad * precio_unidad) "Base Imposable",
           SUM(cantidad * precio_unidad) * 1.21 "Total"
    FROM detalle_pedido NATURAL JOIN producto pr
    GROUP BY codigo_producto, nombre
    HAVING SUM(cantidad * precio_unidad) > 3000;
    
  19. Mostra la suma total de tots els pagaments que s'han fet cadascun dels anys que apareixen a la taula pagos.

    Possible solució
    SELECT YEAR(fecha_pago), SUM(total)
    FROM pago
    GROUP BY YEAR(fecha_pago);