domingo, 18 de mayo de 2014

Consultas resueltas sobre la BD Pedidos


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.  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';



3.  Borrar el producto YOGURT DE SABORES

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