Está en la página 1de 2

1.

crear una funcin que me sume los das trabajados en el mes de junio de un trabajador

DELIMITER $$
DROP FUNCTION IF EXISTS `talllerprocedimientosalmacenados`.`diames`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `talllerprocedimientosalmacenados`.`diames`(ced
int) RETURNS int(11)
BEGIN
declare var int;
select sum(diasTrabajadosSemanales)
into var from asistenciaempleado
where (mes='junio') and (codEmpleado=(ced));
return (var);
END;$$
DELIMITER ;
2.crear un procedimiento almacenado que retorne el valor de la funcin en la que se mostr los
das trabajados de un trabajador y que si los das trabajados fueron mayores o iguales a 15 y
menores que 30 que me actualic la comisin al 0.05% de acuerdo al salario de lo contrario que
me lo actualic al 0.01%
DELIMITER $$
DROP PROCEDURE IF EXISTS `talllerprocedimientosalmacenados`.`actulizarcomision`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE
`talllerprocedimientosalmacenados`.`actulizarcomision`(in ced int)
BEGIN
declare var int;
select diames(ced)into var;
if (var>=15)and(var<=30)then
update sueldo set comision=
(select (salario-(salario*0.05)) from empleado
where empleado.codEmpleado=sueldo.codEmpleado)
where codEmpleado in(ced);
else
if (var<15)or(var>30)then
update sueldo set comision=
(select (salario-(salario*0.01)) from empleado
where empleado.codEmpleado=sueldo.codEmpleado)
where codEmpleado in(ced);
end if;
end if;
END $$
DELIMITER ;

2.

crear una funcion que me sume todos los dias que trabajo el empleado en el ao

"no tienen que estar todos los meses definidos en el ao"


DELIMITER $$
DROP FUNCTION IF EXISTS `talllerprocedimientosalmacenados`.`diasAo`$$
CREATE DEFINER=`root`@`localhost` FUNCTION
`talllerprocedimientosalmacenados`.`diasAo`(ced int) RETURNS int(11)
BEGIN
declare var int;
select sum(diasTrabajadosSemanales) into var from asistenciaempleado
where codEmpleado=(ced);
return (var);
END;
$$
DELIMITER ;

3. crear un procedimiento almacenado que retorne el valor de la funcin en la que se mostro los
das trabajados en el ao del empleado, si el empleado trabajo en el ao 1 o 150 da entonces que
me que actualic la prima Anual al 35% de acuerdo al salario de lo contrario al 50%
DELIMITER $$
DROP PROCEDURE IF EXISTS `talllerprocedimientosalmacenados`.`actulizaranual`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE
`talllerprocedimientosalmacenados`.`actulizaranual`(IN ced int)
BEGIN
declare var int;
select diasAo(ced)into var;
if (var>=1)and(var<=150)then
update sueldo set primaAnual=
(select (salario-(salario*0.35)) from empleado
where empleado.codEmpleado=sueldo.codEmpleado)
where codEmpleado in(ced);
else if (var>150)then
update sueldo set primaAnual=
(select (salario-(salario*0.5)) from empleado
where empleado.codEmpleado=sueldo.codEmpleado)
where codEmpleado in(ced);
end if;
end if;
END $$
DELIMITER ;

También podría gustarte