Crie uma Stored Procedure usando um cursor para achar o valor total do faturamento para um mês e um ano.
Solução:
DELIMITER $$
USE sucos_vendas $$
CREATE PROCEDURE Mais_Um_Campo (vMes INT, vAno INT)
BEGIN
DECLARE fim_do_cursor INT DEFAULT 0;
DECLARE vQuantidade INT;
DECLARE vPreco FLOAT;
DECLARE vTotal_Vendas FLOAT DEFAULT 0;
DECLARE c CURSOR FOR
SELECT INF.QUANTIDADE, INF.PRECO FROM itens_notas_fiscais INF
INNER JOIN notas_fiscais NF ON NF.NUMERO = INF.NUMERO
WHERE MONTH(NF.DATA_VENDA) = vMes AND YEAR(NF.DATA_VENDA) = vAno;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fim_do_cursor = 1;
OPEN c;
WHILE fim_do_cursor = 0 DO
FETCH c INTO vQuantidade, vPreco;
SET vTotal_Vendas = vTotal_Vendas + (vQuantidade * vPreco);
END WHILE;
CLOSE c;
SELECT CONCAT('O total de vendas para o mês ', vMes, '/', vAno, ' é R$ ', vTotal_Vendas) AS FATURAMENTO;
END $$
DELIMITER ;
CALL Mais_Um_Campo(1,2017);
Output:
FATURAMENTO |
---|
O total de vendas para o mês 1/2017 é R$ 3838950 |