jueves, 30 de mayo de 2013

Rutinas, ejercicio 6.

6. Rutina que calcula el valor de la comisión que le corresponde al empleado que ha gestionado un pedido concreto.

DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION `calculaComisionPorPedido`(v_idPedido INT) RETURNS float
BEGIN
         DECLARE v_idEmpleado, v_comision INT;
         DECLARE v_comisionPorPedido, v_totalPedido FLOAT;

         -- Seleccionamos el idEmpleado de ese pedido
         SELECT IdEmpleado INTO v_idEmpleado FROM Pedidos
         WHERE IdPedido = v_idPedido;

         -- Seleccionamos el porcentaje de comisión asociada a ese empleado
         SELECT Comision INTO v_comision FROM Empleados
         WHERE IdEmpleado = v_idEmpleado;

         -- Calculamos la cuantía total del pedido
         SELECT totalPedido(v_idPedido) INTO v_totalPedido;

         -- Calculamos cuánto supone el porcentaje de comisión de esa cuantía
         SELECT v_totalPedido * v_comision / 100 INTO v_comisionPorPedido;

RETURN v_comisionPorPedido;
END
$$

DELIMITER ;

Tabla de referencia:


No hay comentarios:

Publicar un comentario