1
resposta

[Projeto] 06 - Número de notas para diversos dias (SOLUÇÃO MAIS FÁCIL)

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

dianum_notas
2017-01-0174
2017-01-0277
2017-01-0381
2017-01-0471
2017-01-0565
2017-01-0675
2017-01-0782
2017-01-0880
2017-01-0985
2017-01-1072
1 resposta

Oi, Sarah! Tudo bem?

Existem diferentes maneiras de solucionar o mesmo problema, parabéns por ter pensando em uma outra forma de alcançar o resultado esperado pelo exercício! Continue sempre focada nos estudos que você vai longe.

Não deixe de recorrer ao fórum no caso de dúvidas.

Abração!