RESOLUCION EJERCICIOS

Resolución de Ejercicios
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;
Resultado:


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;

Resultado:

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;

Resultado:


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