1
resposta

[MINHA RESPOSTA] Um pouco diferente

No intuito de me desafiar, fiz uma procedure na qual informamos a data inicial e a data final como parâmetros e será retornada a soma das notas dia a dia neste intervalo de tempo.

DELIMITER $$
CREATE PROCEDURE sp_qntd_notas_por_dia ( vDataInicial DATE, vDataFinal DATE)
BEGIN
DROP TABLE NOTAS_POR_DIA;
CREATE TABLE NOTAS_POR_DIA (DATA_NOTA DATE, QUANTIDADE INT);
WHILE vDataInicial <= vDataFinal
DO
INSERT INTO NOTAS_POR_DIA (DATA_NOTA, QUANTIDADE) VALUES (vDataInicial, (SELECT COUNT(*) FROM NOTAS
GROUP BY DATA_VENDA HAVING DATA_VENDA = vDataInicial));
SET vDataInicial = ADDDATE(vDataInicial, INTERVAL 1 DAY);
END WHILE;
SELECT * FROM NOTAS_POR_DIA;
END $$
DELIMITER ;

CALL sp_qntd_notas_por_dia ("2017-01-01", "2017-01-20");
1 resposta

Olá Bruno, tudo bem?

Parabéns Bruno, foi muito interessante a forma que você utilizou para exibir o resultado, criando uma tabela e armazenando os valores, a sua procedure ficou muito legal mesmo e funcionou direitinho, você está indo muito bem :)

Foi muito legal também você ter compartilhado a sua resposta da atividade aqui com a gente :).

Continue assim e bons estudos!