Faça uma Stored Procedure que, a partir do dia 01/01/2017, iremos contar o número de notas fiscais até o dia 10/01/2017. Devemos imprimir a data e o número de notas fiscais. Chame esta Stored Procedure de Soma_Dias_Notas.
Solução:
DELIMITER $$
USE sucos_vendas $$
CREATE PROCEDURE Soma_Dias_Notas(Data_inicial DATE, Data_final DATE)
BEGIN
DECLARE vData DATE;
DECLARE vNumNotas INT;
CREATE TABLE temp_notas_fiscais (dia DATE, num_notas INT);
SET vData = Data_inicial;
WHILE vData <= Data_final
DO
SELECT COUNT(*) INTO vNumNotas FROM notas_fiscais WHERE DATA_VENDA = vData;
INSERT INTO temp_notas_fiscais (dia, num_notas) VALUES (vData, vNumNotas);
SET vData = ADDDATE(vData, INTERVAL 1 DAY);
END WHILE;
SELECT dia, num_notas FROM temp_notas_fiscais;
DROP TABLE temp_notas_fiscais;
END $$
DELIMITER ;
CALL Soma_Dias_Notas('2017-01-01', '2017-01-10');
Output
dia | num_notas |
---|---|
2017-01-01 | 74 |
2017-01-02 | 77 |
2017-01-03 | 81 |
2017-01-04 | 71 |
2017-01-05 | 65 |
2017-01-06 | 75 |
2017-01-07 | 82 |
2017-01-08 | 80 |
2017-01-09 | 85 |
2017-01-10 | 72 |