2
respostas

Dúvida quanto ao exercício

Boa tarde, o resultado do meu exercício deu muito diferente do resultado sugerido. Acreditava que era para fazer a soma do total de notas fiscais emitidas entre uma data inicial e a data final.

Para isso eu criei o seguinte script:

CREATE DEFINER=`root`@`localhost` PROCEDURE `Soma_Dias_Notas`(vDataInicial DATE, vDataFinal DATE)
BEGIN
    DECLARE SomaTotal INT;
    SET SomaTotal =0;

WHILE vDataInicial <= vDataFinal
        DO
            SET SomaTotal = SomaTotal + (SELECT COUNT(*) FROM NOTAS_FISCAIS WHERE DATA_VENDA=vDataInicial GROUP BY DATA_VENDA);
            SET vDataInicial = ADDDATE(vDatainicial, INTERVAL 1 DAY);
        END WHILE;
SELECT SomaTotal AS Total_Notas_Emitidas, vDataFinal as DataFinalBase;
END

Nessa minha saída, escolho no call uma data inicial e uma data final. Como resultado ele me trás a Soma de notas emitidas entre as duas datas.

No resultado sugerido do exercício ele me trás algo completamente diferente: para cada data no intervalo, ele abre diversos selects contendo o total de notas emitidas naquele dia. Nesse caso, ele me abriu 10 selects. Se fosse um período muito maior eu acredito que se tornaria inviável o exemplo pela quantidade de selects que seriam abertas.

Minha dúvida é: continuo interpretando errado o exercício? Qual foi o objetivo da saída sugerida?

Caso eu não tenha interpretado errado, não é melhor reformular o exercício para ser algo parecido com o que eu fiz? Acho que faria mais sentido com a aula dada.

Atenciosamente

Brunno

2 respostas

De início, eu também pensei igual a você Brunno, e imprimi a soma de todas as notas fiscais, mas percebi que me precipitei logo depois que vi a solução.

A questão pede pra imprimir a data e o número de notas fiscais, então a questão deve querer o número de notas fiscais de cada data daquele período.

Mas talvez poderiam ter deixado mais explícito que era número de notas por dia naquele período e não o número de notas daquele período (do dia 1 ao dia 10), que é o que o trecho inicial do enunciado """a partir do dia 01/01/2017, iremos contar o número de notas fiscais até o dia 10/01/2017""" deu a entender pra mim. Vou sugerir alteração lá.

Olá Brunno, tudo bem?

Peço desculpas pela demora no retorno.

O objetivo do retorno desta atividade é mostrar a utilização do ADDDATE, por este motivo o retorno é o numero de notas por dia. Mas realmente você e o Gean tem razão, creio que da forma que está apresentado no enunciado, não está muito claro e por este motivo causou confusão.

Está atividade será revisada, para que as alterações necessárias sejam realizadas.

Qualquer nova dúvida é só falar e bons estudos!