2
respostas

Minha solução

Não sei se se ficou feia ou fora das boas práticas, mas fiz sozinho, sem consulta e sem chatgpt :)

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_soma_dias_notas`(dataInicial date, dataFinal date)
BEGIN
    declare cont, dia date;
    declare notas int;
    set cont = dataInicial;
    create table result (dia date, quantidade int);
    
    while cont <= dataFinal
    do
        select DATA_VENDA , count(numero) as 'Quantidade de notas' into dia, notas  from notas_fiscais where DATA_VENDA = cont group by DATA_VENDA;
        insert into result (dia, quantidade) values (dia, notas);
        set cont = adddate(cont, interval 1 day);
    end while;
    select * from result;
    drop table result;

END
2 respostas

Oii, Damião, tudo bem?

Parabéns por ter resolvido o exercício sozinho! Eba! É sempre bom praticar e testar nossos conhecimentos.

Sobre a sua query, ela parece estar certinha e dentro das boas práticas.

Uma sugestão: você pode converter a data para o formato desejado utilizando a função DATE_FORMAT. Por exemplo, ao imprimir a data, você pode fazer algo como:

SELECT DATE_FORMAT(dia, '%d/%m/%Y') as 'Data', quantidade as 'Quantidade de notas' FROM result;

Assim, a data será exibida no formato "dd/mm/aaaa", ou seja, dia, mês e ano.

No mais, continue praticando e parabéns pelo resultado! Se quiser postar mais soluções aqui, fique à vontade! :)

Abraços!

Obrigado pela dica!