Olá Pedro, tudo bem? O que acontece é que você declarou a variável vDataNota dentro da Procedure e isso vez com que o valor fosse sobre escrito, então você não vai estar usando a data passada na chamada da Procedure:
`Testa_Numero_Notas`(vDataNota date)
Na verdade vai está usando um valor null. Se quiser testar e entender o que está acontecendo por baixo dos panos basta você adicionar a linha select vDataNota;
abaixo da declaração das variáveis:
<Código anterior omitido>
declare vContaNotas int;
declare vDataNota date;
declare vResultado varchar(20);
select vDataNota;
select count(*) into vContaNotas from notas_fiscais where data_venda = vDataNota;
<Código posterior omitido>
Então, como você já recebe a variável vDataNota passado como parâmetro da Stored Procedure, você pode remover a declaração da variável dentro da Stored Procedure da seguinte forma:
CREATE PROCEDURE `FORUM_Testa_Numero_Notas` (vDataNota date)
BEGIN
declare vContaNotas int;
declare vResultado varchar(20);
select count(*) into vContaNotas from notas_fiscais where data_venda = vDataNota;
If vContaNotas > 70 then
set vResultado = 'Muita Nota';
Else
set vResultado = 'Pouca Nota';
end if;
select vResultado;
END
E vai funcionar corretamente.
Espero ter esclarecido sua dúvida!