Ejercicios simples de MySql. Procedimientos

Estoy subiendo ejercicios que he resuelto en la asignatura de Administración y Gestión de Bases de datos. La base de datos utilizada es jardinería.


1.    Escribe un procedimiento que reciba el nombre de un país como parámetro de entrada y realice una consulta sobre la tabla cliente para obtener todos los clientes que existen en la tabla de ese país.

 

CREATE DEFINER=`root`@`localhost` PROCEDURE `Ejercicio1` (in pais_p varchar(50) )

BEGIN

                               select codigo_cliente,nombre_cliente  from cliente

                               where lower(pais)=pais_p;

END


 

2.    Escribe un procedimiento que reciba como parámetro de entrada una forma de pago, que será una cadena de caracteres (Ejemplo: PayPal, Transferencia, etc). Y devuelva como salida el pago de máximo valor realizado para esa forma de pago.

 

CREATE DEFINER=`root`@`localhost` PROCEDURE `Ejercicio2` (in forma_pago_p varchar(40))

BEGIN

                select max(total) from pago

                where lower(forma_pago) =forma_pago_p;      

END



3.    Escribe un procedimiento que reciba como parámetro de entrada una forma de pago, que será una cadena de caracteres (Ejemplo: PayPal, Transferencia, etc). Y devuelva como salida los siguientes valores teniendo en cuenta la forma de pago seleccionada como parámetro de entrada:

a.    el pago de máximo valor,

b.    el pago de mínimo valor,

c.     el valor medio de los pagos realizados,

d.    la suma de todos los pagos,

e.    el número de pagos realizados para esa forma de pago.

 

CREATE DEFINER=`root`@`localhost` PROCEDURE `Ejercicio3` (in forma_pago_p varchar(40) )

BEGIN

                select max(total), min(total), avg(total), sum(total), count(*) from pago

                where lower(forma_pago) =forma_pago_p;

END



4.    Escribe un procedimiento que reciba un año como parámetro de entrada y saque un listado con el código de cliente de aquellos clientes que realizaron algún pago en ese año. Obtener también como salida el número de clientes que cumplan este requisito.

 

CREATE DEFINER=`root`@`localhost` PROCEDURE `Ejercicio4`(in año_p int, out numero_clientes int)

BEGIN 

set numero_clientes=(select count(distinct codigo_cliente) from pago where year(fecha_pago)=año_p);

END



5.    Escribe un procedimiento que reciba un número como parámetro de entrada y saque un listado con los clientes que realizaron al menos ese número de pedidos. Obtener también como salida el número de clientes que cumplan este requisito.

 

CREATE DEFINER=`root`@`localhost` PROCEDURE `Ejercicio5`(in numero int, out numero_clientes int)

BEGIN

                set numero_clientes=(select count(distinct codigo_cliente) from cliente

                where codigo_cliente in (select codigo_cliente from pedido

                group by codigo_cliente

                having count(*)>=numero));

END



6.   Escribe un procedimiento que reciba el código de un cliente como parámetro de entrada y obtenga el nombre del empleado que lo atendió y la ciudad donde está su oficina.

 

CREATE DEFINER=`root`@`localhost` PROCEDURE `Ejercicio6`(in codigo_cliente_p int )

BEGIN

 

select e.nombre,e.apellido1,e.apellido2,o.ciudad from cliente as c

 

    inner join empleado as e on c.codigo_empleado_rep_ventas=e.codigo_empleado

 

inner join oficina as o on e.codigo_oficina=o.codigo_oficina

 

where c.codigo_cliente=codigo_cliente_p;

 

END



No hay comentarios:

Publicar un comentario

Configurar NAS LACIE y probar que podemos acceder a él en la red interna

El modelo de NAS que hemos utilizado es el LACIE 5big. Una de las cosas que debemos tener en cuenta es: - En la red hay un servidor DHCP...