Ejercicios simples de Mysql. Funciones.

Estoy subiendo ejercicios hechos por mí durante la clase de Administración y Gestión de bases de datos ASGB. El ejercicio está hecho con la base de datos jardinería.



1. Escribe una función que devuelva el numero total de pedidos realizados por un determinado cliente cuyo nombre se pasa por parámetro.

CREATE DEFINER=`root`@`localhost` FUNCTION `Ejercicio1B`(codigo_cliente int) RETURNS int

begin

            declare numero_clientes int;

            set numero_clientes=(select count(*) from pedido

            where codigo_cliente=codigo_cliente_p);

return numero_clientes;

end




2. Escribe una función que devuelva el valor medio del precio de los productos de una determinada gama que se recibirá como parámetro de entrada.

CREATE DEFINER=`root`@`localhost` FUNCTION `Ejercicio2B`(gama_p varchar(50)) RETURNS float

begin

declare precio_medio float;

            set precio_medio=(select ROUND(avg((precio_venta)),2) from producto where lower(gama)=gama_p);

return precio_medio;

end



3.Escribe una función que devuelva el nombre del cliente con más pedidos ha realizado entre dos fechas que se pasan por parámetros.

CREATE DEFINER=`root`@`localhost` FUNCTION `Ejercicio3B`(fecha1 date, fecha2 date) RETURNS varchar(50) CHARSET utf8mb4

begin

declare nombre_cliente_p varchar(50);

            set nombre_cliente_p=(select c.nombre_cliente from pedido as p

            inner join cliente as c on c.codigo_cliente=p.codigo_cliente

            where p.fecha_pedido between "2006-01-7" and "2008-11-09"

            group by c.codigo_cliente

            order by count(c.codigo_cliente) desc

            limit 1);

return nombre_cliente_p;

end




4. Escribe una función que devuelva el numero de clientes de una determinada oficina cuyo nombre se pasa como parámetro.

CREATE DEFINER=`root`@`localhost` FUNCTION `Ejercicio4B`(codigo_oficina_p varchar(10)) RETURNS int

begin

declare numero_clientes_oficina int;

                        set numero_clientes_oficina=(select o.codigo_oficina,count(c.codigo_cliente) from oficina as o

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

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

                        where lower(o.codigo_oficina)=codigo_oficina_p);

 

return numero_clientes_oficina;

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