1
resposta

O meu código foi um pouco diferente do professor, achei que tava certo, mas deu erro

Eu me guiei pela query do exercicio durante o video, achei que tava correto, mas deu erro. Não sei porque não foi mencionado a coluna NUMERO no select.

CREATE PROCEDURE `Quantidade_Notas`(vNUMNOTAS INT)
BEGIN
DECLARE vNUMNOTAS INT;
SELECT COUNT(NUMERO) INTO vNUMNOTAS FROM notas_fiscais WHERE NUMERO = vNUMNOTAS
HAVING DATA_VENDA = '20170101'; 
SELECT vNUMNOTAS;
END
1 resposta

Olá Vitória, tudo bem?

Peço desculpas pela demora no retorno.

Então Vitória, na atividade é solicitado que você crie uma variável e atribua a ela o número de notas fiscais do dia 01/01/2017, ou seja, essa variável deve receber a quantidade de notas que foram vendidas nesse dia. Neste caso, não é necessario utilizar a coluna NUMERO na query, já que o objetivo é retornar a quantidade de notas vendidas no dia.

Então Vitória, o que você precisa passar para a procedure é a data que você deseja que as notas sejam contabilizadas. Você realiza o COUNT( ) das notas e realiza o INSERT na variável NUMNOTAS, passando como condição da busca a data desejada:

CREATE PROCEDURE `Quantidade_Notas`()
BEGIN
DECLARE NUMNOTAS INT;
SELECT COUNT(*) INTO NUMNOTAS  FROM NOTAS_FISCAIS WHERE DATA_VENDA = '20170101';
SELECT NUMNOTAS;
END

Para deixar a procedure mais prática, você pode passar a data como um parâmetro, ao invés de especificar diretamente na procedure:

DELIMITER $$
CREATE PROCEDURE `Quantidade_Notas`(DATA date)
BEGIN
DECLARE vNUMNOTAS INT;
SELECT COUNT(*) INTO vNUMNOTAS FROM notas_fiscais WHERE  DATA_VENDA = DATA; 
SELECT vNUMNOTAS;
END$$
DELIMITER ;


CALL Quantidade_Notas('20170101')

Espero ter ajudado, qualquer dúvida é só falar e bons estudos!