DELIMITER $$
CREATE FUNCTION CalculaDescontoPorDias(totalDias INT)
RETURNS VARCHAR(5)
DETERMINISTIC
BEGIN
DECLARE desconto VARCHAR(5);
IF totalDias BETWEEN 4 AND 6 THEN
SET desconto = '5%';
ELSEIF totalDias BETWEEN 7 AND 9 THEN
SET desconto = '10%';
ELSEIF totalDias >= 10 THEN
SET desconto = '15%';
ELSE
SET desconto = '0%';
END IF;
RETURN desconto;
END$$
DELIMITER ;
-- Chamada da função para todos os clientes listagem completa
SELECT
a.cliente_id,
c.nome AS NomeCliente,
a.data_inicio,
a.data_fim,
DATEDIFF(a.data_fim, a.data_inicio) AS TotalDias,
CalculaDescontoPorDias(DATEDIFF(a.data_fim, a.data_inicio)) AS Desconto
FROM alugueis a
JOIN clientes c ON a.cliente_id = c.cliente_id;
-- ORDER BY TotalDias DESC;
-- Para um Um cliente específico
SELECT
a.cliente_id,
c.nome AS NomeCliente,
a.data_inicio,
a.data_fim,
DATEDIFF(a.data_fim, a.data_inicio) AS TotalDias,
CalculaDescontoPorDias(DATEDIFF(a.data_fim, a.data_inicio)) AS Desconto
FROM alugueis a
JOIN clientes c ON a.cliente_id = c.cliente_id
WHERE a.cliente_id = '1000'; -- informe o ID do cliente desejado