domingo, 14 de diciembre de 2014

PROCEDIMIENTOS ALMACENADOS



PROCEDIMIENTOS ALMACENADOS  CON PARAMETROS DE
ENTRADA, SALIDA y VARIABLES LOCALES

1. Crear un procedimiento almacenado que devuelva en un parámetro de tipo
out, el nombre del representante de un determinado cliente (código). Debe
utilizar variable(s) local(es).

CREATE DEFINER=`root`@`localhost` PROCEDURE `Nombre_representante_x_cliente`
(in pcliente int(11),out pnombre varchar(50))
BEGIN
declare clave int;
select CodigoEmpleadoRepVentas
into clave
from clientes
where CodigoCliente=pcliente;
select Nombre
into pnombre
from empleados
where CodigoEmpleado=clave;


2. Crear un procedimiento almacenado que devuelva en un parámetro out,
cuantas veces se ha pedido un determinado producto. Para ello debe
proporcionar el nombre del producto y utilizar variables locales.


 CREATE DEFINER=`root`@`localhost` PROCEDURE `veces_pedido_un_producto`
(in pnombre varchar (70),out ptotal int)
BEGIN
Declare clave varchar (15);
select CodigoProducto
into clave
from productos
where Nombre=pnombre;

select count(*)
into ptotal
from detallepedidos
where CodigoProducto=clave;

END




 3. Crear un procedimiento almacenado que devuelva en un parámetro out, la
descripción de la gama de un determinado producto. Debe utilizar variables
locales.
CREATE DEFINER=`root`@`localhost` PROCEDURE `descripcion_gama_x_producto`
(in pnombre varchar (70),out pdescripcion text)
BEGIN
Declare clave text;
select gama
into clave
from productos
where nombre=pnombre;
select DescripcionTexto
into pdescripcion
from gamasproductos
where DescripcionTexto=clave;
18:01:55          call descripcion_gama_x_producto ('Washingtonia Robusta',@total)       Error Code: 1172. Result consisted of more than one row        0.000 sec

4. Crear un procedimiento almacenado que devuelva en un parámetro out, el
nombre del empleado que es jefe de un determinado empleado (in).


CREATE DEFINER=`root`@`localhost` PROCEDURE `jefe_de_empleado`
(in pcodE int(11), out pcodJ varchar(50))
begin
declare clave int(11);
select CodigoEmpleado
into clave
from empleados
where codigoempleado=pcodE;

select Nombre
into pcodJ
from empleados
where CodigoJefe=clave;







5. Crear un procedimiento almacenado que a partir de un nombre de producto
devuelve en un parámetro de tipo out cuantos pedidos se han hecho de él
mismo.
CREATE DEFINER=`root`@`localhost` PROCEDURE `cuantas_piezas_nombre`
(in pnombre varchar(70), out pcant int(11))
BEGIN
declare clave varchar(15);
select CodigoProducto
into clave
from productos
where Nombre=pnombre;
 select sum(cantidad)
into pcant
from detallepedidos
where CodigoProducto=clave;
call cuantas_piezas_nombre ('Lonicera Pileata',@total);
select @total;------ '32'--------


6. Crear un procedimiento almacenado que calcule en un parámetro de tipo out,
para un nombre de cliente, cuánto dinero le queda por pagar. Para ello debe
sumar el total de sus pedidos y restarle el total de sus pagos realizados.

7. Crear un procedimiento almacenado que dado un código de cliente, devuelva
en un parámetro de tipo out la ciudad de la oficina de su representante.


8. Crear un procedimiento almacenado que devuelva la lista de clientes que lleva
un determinado representante.

No hay comentarios:

Publicar un comentario