Está en la página 1de 1

Ejercicio 1

CREATE PROCEDURE actualizar_edad


@p_codigo_empleado_1 INT,
@p_codigo_empleado_2 INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @empleados_existen INT;
SET @empleados_existen = 0;

SELECT @empleados_existen = COUNT(*)


FROM Empleados
WHERE CodigoEmpleado >= @p_codigo_empleado_1 AND CodigoEmpleado <=
@p_codigo_empleado_2;

IF @empleados_existen = 0
SELECT 'Los empleados no existen' AS mensaje;
ELSE
BEGIN
UPDATE empleados
SET Edad = Edad + 1
WHERE CodigoEmpleado >= @p_codigo_empleado_1 AND CodigoEmpleado <=
@p_codigo_empleado_2;
SELECT 'La edad de los empleados ha sido actualizada correctamente' AS mensaje;
END
END

Ejercicio 2
Alter PROCEDURE comision_empleados
@anio INT,
@mes INT
AS
BEGIN
SET NOCOUNT ON;

SELECT CONCAT(e.Nombres, ' ', e.Apellidos )AS 'Nombre del empleado',


SUM(dv.Cantidad * dv.Precio) AS 'Total de ventas',
CASE
WHEN SUM(dv.cantidad * dv.Precio) < 15000 THEN 20000 * 0.05
WHEN SUM(dv.cantidad * dv.Precio) BETWEEN 15000 AND 22000 THEN 20000 *
0.10
ELSE 20000 * 0.15
END + 20000 AS 'Comision'
FROM empleados e
INNER JOIN ventas v ON e.CodigoEmpleado = v.CodigoEmpleado
INNER JOIN VentasDetalle dv ON v.CodigoVentas = dv.CodigoVentas
WHERE YEAR(v.Fecha) = @anio AND MONTH(v.Fecha) = @mes
GROUP BY e.Nombres, e.Apellidos
END;

También podría gustarte