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