1. /* 1. Actualizar el precio unitario de los productos de la
categoría CARNICOS, subiéndolos en un 10% */
SELECT * FROM CATEGORIAS;
SELECT * FROM PRODUCTOS ORDER BY CATEGORIAID;
UPDATE PRODUCTOS SET PRECIOUNIT = PRECIOUNIT * 1.10 WHERE
CATEGORIAID IN (SELECT CATEGORIAID FROM CATEGORIAS WHERE NOMBRECAT
= 'CARNICOS');
2. /*2. Actualizar el teléfono celular del proveedor cuyo contacto
es MANUEL ANDRADE, con el valor 099010291*/
--099234567
SELECT * FROM PROVEEDORES WHERE CELUPROV = '099234567';
UPDATE PROVEEDORES SET CELUPROV = '099010291' WHERE CONTACTO =
'MANUEL ANDRADE';
/*3. Borrar el producto YOGURT DE SABORES*/
SELECT * FROM PRODUCTOS;
DELETE FROM PRODUCTOS WHERE DESCRIPCION = 'YOGURT DE SABORES';
3. --4. REALIZAR LAS SIGUIENTES CONSULTAS:
/*4.1 Mostrar todas las órdenes: el id de la orden, el apellido y
nombre del empleado que la atendió el nombre de la compañía
cliente y la fecha de orden */
SELECT * FROM ORDENES;
SELECT * FROM EMPLEADOS;
SELECT * FROM CLIENTES;
SELECT ORDENID,APELLIDO,NOMBRE,NOMBRECIA,FECHAORDEN FROM ORDENES O
JOIN EMPLEADOS E ON O.EMPLEADOID = E.EMPLEADOID JOIN CLIENTES C ON
O.CLIENTEID = C.CLIENTEID ORDER BY ORDENID;
4. /*4.2 Mostrar la suma total de cada tipo de producto pedidos en
todas las órdenes.*/
SELECT * FROM DETALLE_ORDENES;
SELECT * FROM PRODUCTOS;
SELECT DO.PRODUCTOID, SUM(CANTIDAD) AS 'TOTAL PRODUCTO' FROM
DETALLE_ORDENES DO JOIN PRODUCTOS P ON DO.PRODUCTOID =
P.PRODUCTOID GROUP BY DO.PRODUCTOID;
5. /*4.3 Mostrar el número de órdenes atendidas por cada empleado,
incluidos los que tienen 0 órdenes.*/
SELECT * FROM ORDENES WHERE EMPLEADOID = 2;
SELECT * FROM EMPLEADOS;
6. SELECT E.EMPLEADOID, COUNT(*) AS 'ORDENES POR EMPLEADO' FROM
EMPLEADOS E JOIN ORDENES O ON E.EMPLEADOID = O.EMPLEADOID GROUP BY
E.EMPLEADOID;
/*4.4 Muestre los proveedores y la suma de dinero vendido en los
productos de ese proveedor. */
SELECT * FROM PROVEEDORES;
SELECT * FROM DETALLE_ORDENES ORDER BY PRODUCTOID;
SELECT * FROM PRODUCTOS;
SELECT NOMBREPROV, SUM(CANTIDAD*PRECIOUNIT) AS 'TOTAL VENDIDO'
FROM DETALLE_ORDENES DO JOIN PRODUCTOS P ON DO.PRODUCTOID =
P.PRODUCTOID JOIN PROVEEDORES PR ON P.PROVEEDORID = PR.PROVEEDORID
GROUP BY NOMBREPROV;
7. --5. REALIZAR EL SIGUIENTE PROCEDIMIENTO ALMACENADO.
/*5.1 Escriba un procedimiento almacenado que reciba como
parámetro un código de proveedor y devuelve el número de órdenes
en las que están incluidos productos de ese proveedor. */
DELIMITER $$
CREATE PROCEDURE `PEDIDOS`.`NUM_ORDENES`(IN CODPROV INT)
BEGIN
SELECT COUNT(DET.CANTIDAD) FROM (DETALLE_ORDENES AS DET JOIN
PRODUCTOS AS PROD ON DET.PRODUCTOID=PROD.PRODUCTOID) JOIN
8. PROVEEDORES AS PROV ON PROD.PROVEEDORID=PROV.PROVEEDORID WHERE
PROV.PROVEEDORID=CODPROV GROUP BY PROV.NOMBREPROV;
END $$
DELIMITER;
CALL NUM_ORDENES(10);
/*5.2 Escriba un procedimiento almacenado que reciba como
parámetro un nombre de una categoría y devuelve el código del
producto de esa categoría que tiene más unidades vendidas.*/
DELIMITER $$
CREATE PROCEDURE `PEDIDOS`.`MAS_VENDIDO`(IN NOMBRECAT CHAR(20))
BEGIN
SELECT PROD.PRODUCTOID FROM DETALLE_ORDENES AS DET JOIN PRODUCTOS
AS PROD ON DET.PRODUCTOID=PROD.PRODUCTOID JOIN CATEGORIAS AS CAT
ON CAT.CATEGORIAID=PROD.CATEGORIAID WHERE CAT.NOMBRECAT LIKE
NOMBRECAT GROUP BY PROD.DESCRIPCION ORDER BY SUM(DET.CANTIDAD)DESC
LIMIT 1;
END $$
DELIMITER;
CALL MAS_VENDIDO('CARNICOS');