RESOLUCION DE LOS EJERCICIOS PLANTEADOS | DBMS ORACLE

DBMS ORACLE

RESOLUCION DE LOS EJERCICIOS PLANTEADOS


--1.  Actualizar el precio unitario de los productos de la categoría CARNICOS, subiéndolos en un 10%

 update productos

 set preciounit=preciounit*1.10
 where categoriaid=(select categoriaid from categorias
 where nombrecat ='CARNICOS');

--2.  Actualizar el teléfono celular del proveedor cuyo contacto es MANUEL ANDRADE, con el valor 099010291

 update proveedores

 set celuprov = '099010291'
 where contacto='MANUEL ANDRADE';

--3.  Borrar el producto YOGURT DE SABORES

 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);

--4.2 Mostrar la suma total de cada tipo de producto pedidos en todas las órdenes.

 select * from detalle_ordenes
 select productoid, sum (cantidad) from detalle_ordenes
 group by productoid ;

--4.3 Mostrar el número de órdenes atendidas por cada empleado, incluidos los que tienen 0 órdenes.

 select nombre, apellido, count (o.empleadoid) from empleados e left join ordenes o
 on e.empleadoid= o.empleadoid
 group by nombre, apellido; 4.4 Muestre los proveedores y la suma de dinero vendido en los productos de ese proveedor.

--4.4 Muestre los proveedores y la suma de dinero vendido en los productos de ese proveedor.

 select prov.nombreprov,sum(d.cantidad * pro.preciounit )

 from proveedores prov, productos pro, detalle_ordenes d
 where d.productoid= pro.productoid and prov.proveedorid= pro.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.


create or replace procedure num_ordenes(idproo in number,num out number) 
as   begin
    select count(p.productoid) into num from productos p join detalle_ordenes dor
      on (p.productoid=dor.productoid)join ordenes ord on(ord.ordenid=dor.ordenid)
    where proveedorid=idproo
    group by proveedorid;
 end;
 /
set serveroutput on

 declare num number;
 begin
 num_ordenes(10, num);
 dbms_output.put_line('Numero de ordenes: ' ||num);
 end;


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


 select * from categorias
 select * from productos
 select * from detalle_ordenes


 create or replace procedure mas_vendido(nomCat in varchar2(40),cod_prod out number ) 
 as
 begin
    select max(sum(cantidad))into cod_prod from productos p join categorias c on
  (c.categoriaid=p.categoriaid)
    join detalle_ordenes dor on (p.productoid=dor.productoid)
    where c.nombrecat=nomCat
    group by p.productoid;
 end;
  /
  
  declare num number;
begin
mas_vendido('CARNICOS',num);
dbms_output.put_line('Mas vendido: ' || num); 
 end;

Link para descargar Script:
Resolucion Ejercicios Planteados

Leave a Reply