Se mostrará la resolución y resultados a los siguientes ejercicios propuestos:
En resumen los ejercicios los pueden encontrar en:
Descarga los Ejercicios resueltos.sql por mediaFire
Solución Ejercicios
Ejercicios
1.- Actualizar el precio unitario de los productos de la categoría CARNICOS, subiéndolos en un 10%
Tabla sin valores modificados:
El código es el siguiente:
UPDATE PRODUCTOS
SET PRECIOUNIT= PRECIOUNIT*1.10
WHERE CATEGORIAID =(SELECT CATEGORIAID
FROM CATEGORIAS
WHERE NOMBRECAT='CARNICOS')
A continuación nos aparecerá un mensaje que indica que los cambios han sido realizados. Seleccionamos si
Resultado:
2.- Actualizar el teléfono celular del proveedor cuyo contacto es MANUEL ANDRADE, con el valor 099010291
Tabla sin modificaciones:
El código es el siguiente:
UPDATE PROVEEDORES
SET CELUPROV = 099010291
WHERE CONTACTO ='MANUEL ANDRADE'
Resultado:
3. - Borrar el producto YOGURT DE SABORES
Tabla sin modificaciones:
El código es el siguiente:
DELETE FROM PRODUCTOS
WHERE DESCRIPCION ='YOGURT DE SABORES'
A continuación nos pedirá confirmar si se empieza a eliminar el registro. En nuestro caso damos click en Si.
Resultado:
.
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
El código es el siguiente:
SELECT o.ORDENID,((TRIM(e.NOMBRE)&' ')& TRIM(e.APELLIDO))as Empleado,cli.NOMBRECIA, o.FECHAORDEN
FROM CLIENTES cli, EMPLEADOS e, ORDENES o
WHERE cli.CLIENTEID=o.CLIENTEID AND e.EMPLEADOID = o.EMPLEADOID
Resultado:
4.2 Mostrar la suma total de cada tipo de producto pedidos en todas las órdenes.
El código es el siguiente:
SELECT do.ORDENID,
p.PRODUCTOID, (SUM(p.PRECIOUNIT*do.CANTIDAD)) AS ['Total de c/tipo de producto']
FROM PRODUCTOS p INNER JOIN DETALLE_ORDENES do
ON p.PRODUCTOID=do.PRODUCTOID
GROUP BY do.ORDENID, p.PRODUCTOID,
p.PRECIOUNIT
ORDER BY ORDENID;
4.3 Mostrar el número de órdenes atendidas por cada empleado, incluidos los que tienen 0 órdenes.
El código es el siguiente:
SELECT e.EMPLEADOID AS [ID_EMPLEADO] ,((TRIM(e.NOMBRE)&' ')& TRIM(e.APELLIDO)) AS [EMPLEADO], , COUNT (o.ORDENID)AS [T_ORDENES]
FROM EMPLEADOS e LEFT JOIN ORDENES o
ON
e.EMPLEADOID=o.EMPLEADOID
GROUP BY e.EMPLEADOID,
e.NOMBRE, e.APELLIDO;
4.4 Muestre los proveedores y la suma de dinero vendido en los productos de ese proveedor.
El código es el siguiente:
SELECT p.PROVEEDORID as [ID_PROVEEDOR], p.NOMBREPROV as [NOMBRE_PROVEEDOR],sum(de.CANTIDAD*pr.PRECIOUNIT)as ['TOTAL_VENTAS']
FROM (PROVEEDORES p INNER JOIN PRODUCTOS pr
ON pr.PROVEEDORID = p.PROVEEDORID)
INNER JOIN DETALLE_ORDENES de
ON de.PRODUCTOID = pr.PRODUCTOID
GROUP BY p.PROVEEDORID, p.NOMBREPROV
Resultado:
Realizar los siguientes procedimientos almacenados.
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.
SELECT p.PROVEEDORID, COUNT(ordenid) as ['Numero de Ordenes']
FROM (DETALLE_ORDENES AS do INNER JOIN PRODUCTOS AS p on o.PRODUCTOID=p.PRODUCTOID) INNER JOIN PROVEEDORES AS pr on pr.PROVEEDORID=p.PROVEEDORID
WHERE pr.PROVEEDORID=Código_Proveedor
GROUP BY p.PROVEEDORID;
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.
El código es el siguiente:
SELECT p.PRODUCTOID, MAX(do.CANTIDAD)
FROM (CATEGORIAS AS c INNER JOIN PRODUCTOS AS p on c.CATEGORIAID=p.CATEGORIAID) INNER JOIN DETALLE_ORDENES AS do on do.PRODUCTOID=p.PRODUCTOID
WHERE c.NOMBRECAT=[Nombre de la Categoria]
GROUP BY p.PRODUCTOID;
No hay comentarios:
Publicar un comentario