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;
SET PRECIOUNIT=PRECIOUNIT*1.10
WHERE CATEGORIAID IN(SELECT CATEGORIAID FROM CATEGORIAS
WHERE NOMBRECAT='CARNICOS');
2. Actualizar el teléfono celular del proveedor cuyo contacto es MANUEL ANDRADE, con el valor 099010291
SELECT * FROM PROVEEDORES
WHERE CELUPROV='099234567';
UPDATE PROVEEDORES SET CELUPROV='099010291'
WHERE CONTACTO='MANUEL ANDRADE';
SELECT * FROM PRODUCTOS;
DELETE FROM PRODUCTOS
WHERE DESCRIPCION='YOGURT DE SABORES';
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.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'TOTALPRODUCTO'
FROM DETALLE_ORDENES DO JOIN PRODUCTOS P
ON DO.PRODUCTOID=P.PRODUCTOID
GROUP BY DO.PRODUCTOID;
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;
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;
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) AS 'Pedidos'
FROM(DETALLE_ORDENES AS DET JOIN
PRODUCTOS AS PROD ON DET.PRODUCTOID=PROD.PRODUCTOID) JOIN
PROVEEDORES AS PROV ON PROD.PROVEEDORID=PROV.PROVEEDORID
WHERE PROV.PROVEEDORID=CODPROV
GROUP BY PROV.NOMBREPROV;
END $$
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 $$
CALL MAS_VENDIDO('LACTEOS');
No hay comentarios:
Publicar un comentario