Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Parte 6.08

USE jugos_ventas;

SELECT * FROM facturas;

SELECT * FROM items_facturas;

SELECT F.DNI,F.FECHA_VENTA,I.CANTIDAD FROM facturas F
INNER JOIN items_facturas I ON I.NUMERO = F.NUMERO;

SELECT F.DNI,DATE_FORMAT(F.FECHA_VENTA,"%m - %Y") AS MES_AÑO,I.CANTIDAD FROM facturas F
INNER JOIN items_facturas I ON I.NUMERO = F.NUMERO;

/*Cantida de venta por mes de cada cliente*/
SELECT F.DNI,DATE_FORMAT(F.FECHA_VENTA,"%m - %Y") AS MES_AÑO,SUM(I.CANTIDAD) AS CANTIDAD_VENDIDA FROM facturas F
INNER JOIN items_facturas I ON I.NUMERO = F.NUMERO
GROUP BY DNI,DATE_FORMAT(F.FECHA_VENTA,"%m - %Y")
ORDER BY DATE_FORMAT(F.FECHA_VENTA,"%m - %Y");

SELECT * FROM tabla_de_clientes;

SELECT DNI,NOMBRE,VOLUMEN_DE_COMPRA FROM tabla_de_clientes;

SELECT 
    F.DNI,
    C.NOMBRE,
    DATE_FORMAT(F.FECHA_VENTA,"%m - %Y") AS MES_AÑO,
    SUM(I.CANTIDAD) AS CANTIDAD_VENDIDA,
    C.VOLUMEN_DE_COMPRA/10 AS CANTIDAD_MAXIMA 
FROM facturas F
INNER JOIN items_facturas I ON I.NUMERO = F.NUMERO
INNER JOIN tabla_de_clientes C ON F.DNI = C.DNI
GROUP BY DNI,C.NOMBRE,DATE_FORMAT(F.FECHA_VENTA,"%m - %Y")
ORDER BY DNI -- DATE_FORMAT(F.FECHA_VENTA,"%m - %Y");
;
SELECT 
    A.DNI,
    A.NOMBRE,
    A.MES_AÑO,
    (A.CANTIDAD_VENDIDA - A.CANTIDAD_MAXIMA) AS DIFERENCIAS
FROM (SELECT 
    F.DNI,
    C.NOMBRE,
    DATE_FORMAT(F.FECHA_VENTA,"%m - %Y") AS MES_AÑO,
    SUM(I.CANTIDAD) AS CANTIDAD_VENDIDA,
    C.VOLUMEN_DE_COMPRA/10 AS CANTIDAD_MAXIMA 
FROM facturas F
INNER JOIN items_facturas I ON I.NUMERO = F.NUMERO
INNER JOIN tabla_de_clientes C ON F.DNI = C.DNI
GROUP BY DNI,C.NOMBRE,DATE_FORMAT(F.FECHA_VENTA,"%m - %Y")
ORDER BY DNI) A;

SELECT 
    A.DNI,
    A.NOMBRE,
    A.MES_AÑO,
    (A.CANTIDAD_VENDIDA - A.CANTIDAD_MAXIMA) AS DIFERENCIAS,
    CASE WHEN (A.CANTIDAD_VENDIDA - A.CANTIDAD_MAXIMA) < 0 THEN 'Venta válida' ELSE 'Venta inválida' END AS STATUS_VENTA 
FROM (SELECT 
    F.DNI,
    C.NOMBRE,
    DATE_FORMAT(F.FECHA_VENTA,"%m - %Y") AS MES_AÑO,
    SUM(I.CANTIDAD) AS CANTIDAD_VENDIDA,
    C.VOLUMEN_DE_COMPRA/10 AS CANTIDAD_MAXIMA 
FROM facturas F
INNER JOIN items_facturas I ON I.NUMERO = F.NUMERO
INNER JOIN tabla_de_clientes C ON F.DNI = C.DNI
GROUP BY DNI,C.NOMBRE,DATE_FORMAT(F.FECHA_VENTA,"%m - %Y")
ORDER BY DNI) A;

/*Informe de Venta por Sabor 2016 */
SELECT 
    P.SABOR,
    I.CANTIDAD,
    F.FECHA_VENTA
FROM tabla_de_productos P
INNER JOIN items_facturas I ON I.CODIGO_DEL_PRODUCTO = P.CODIGO_DEL_PRODUCTO
INNER JOIN facturas F ON F.NUMERO = I.NUMERO;

SELECT 
    P.SABOR,
    SUM(I.CANTIDAD) AS CANTIDAD_TOTAL,
    YEAR(F.FECHA_VENTA) AS AÑO
FROM tabla_de_productos P
INNER JOIN items_facturas I ON I.CODIGO_DEL_PRODUCTO = P.CODIGO_DEL_PRODUCTO
INNER JOIN facturas F ON F.NUMERO = I.NUMERO
WHERE YEAR(F.FECHA_VENTA) = 2016
GROUP BY P.SABOR,YEAR(F.FECHA_VENTA)
ORDER BY SUM(I.CANTIDAD) DESC;

/*Cantidad total vendida 2016*/
SELECT 
    SUM(I.CANTIDAD) AS CANTIDAD_TOTAL,
    YEAR(F.FECHA_VENTA) AS AÑO
FROM tabla_de_productos P
INNER JOIN items_facturas I ON I.CODIGO_DEL_PRODUCTO = P.CODIGO_DEL_PRODUCTO
INNER JOIN facturas F ON F.NUMERO = I.NUMERO
WHERE YEAR(F.FECHA_VENTA) = 2016
GROUP BY YEAR(F.FECHA_VENTA);

SELECT * FROM (
    SELECT 
        P.SABOR,
        SUM(I.CANTIDAD) AS CANTIDAD_TOTAL,
        YEAR(F.FECHA_VENTA) AS AÑO
    FROM tabla_de_productos P
    INNER JOIN items_facturas I ON I.CODIGO_DEL_PRODUCTO = P.CODIGO_DEL_PRODUCTO
    INNER JOIN facturas F ON F.NUMERO = I.NUMERO
    WHERE YEAR(F.FECHA_VENTA) = 2016
    GROUP BY P.SABOR,YEAR(F.FECHA_VENTA)
    ORDER BY SUM(I.CANTIDAD) DESC) VENTAS_SABOR
INNER JOIN (
    SELECT 
        SUM(I.CANTIDAD) AS CANTIDAD_TOTAL,
        YEAR(F.FECHA_VENTA) AS AÑO
    FROM tabla_de_productos P
    INNER JOIN items_facturas I ON I.CODIGO_DEL_PRODUCTO = P.CODIGO_DEL_PRODUCTO
    INNER JOIN facturas F ON F.NUMERO = I.NUMERO
    WHERE YEAR(F.FECHA_VENTA) = 2016
    GROUP BY YEAR(F.FECHA_VENTA)
) VENTA_TOTAL ON VENTA_TOTAL.AÑO = VENTAS_SABOR.AÑO;

SELECT 
    VENTAS_SABOR.SABOR,
    VENTAS_SABOR.AÑO,
    VENTAS_SABOR.CANTIDAD_TOTAL,
    ROUND((VENTAS_SABOR.CANTIDAD_TOTAL/VENTA_TOTAL.CANTIDAD_TOTAL) * 100,2) AS PORCENTAJE
FROM (
    SELECT 
        P.SABOR,
        SUM(I.CANTIDAD) AS CANTIDAD_TOTAL,
        YEAR(F.FECHA_VENTA) AS AÑO
    FROM tabla_de_productos P
    INNER JOIN items_facturas I ON I.CODIGO_DEL_PRODUCTO = P.CODIGO_DEL_PRODUCTO
    INNER JOIN facturas F ON F.NUMERO = I.NUMERO
    WHERE YEAR(F.FECHA_VENTA) = 2016
    GROUP BY P.SABOR,YEAR(F.FECHA_VENTA)
    ORDER BY SUM(I.CANTIDAD) DESC) VENTAS_SABOR
INNER JOIN (
    SELECT 
        SUM(I.CANTIDAD) AS CANTIDAD_TOTAL,
        YEAR(F.FECHA_VENTA) AS AÑO
    FROM tabla_de_productos P
    INNER JOIN items_facturas I ON I.CODIGO_DEL_PRODUCTO = P.CODIGO_DEL_PRODUCTO
    INNER JOIN facturas F ON F.NUMERO = I.NUMERO
    WHERE YEAR(F.FECHA_VENTA) = 2016
    GROUP BY YEAR(F.FECHA_VENTA)
) VENTA_TOTAL ON VENTA_TOTAL.AÑO = VENTAS_SABOR.AÑO
ORDER BY VENTAS_SABOR.SABOR DESC;
1 respuesta

Hola Alexei, espero que estés muy bien.

Estamos muy contentos con tu aprendizaje. Gracias por compartir tu código con nosotros. Continúa con tus estudios y cualquier duda estaremos aquí =)

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios