Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha SP (dúvida)

Vim olhar as respostas compartilhadas e vi que a maioria das stored procedures da galera aqui (se não todas) possuem mais de uma variável declarada... Fiquei em dúvida porque na minha só declarei uma mesmo mas, testando, aparentemente ela funciona da forma correta. Ficou assim:

CREATE DEFINER=`root`@`localhost` PROCEDURE `testa_numero_notas`(data DATE)
BEGIN
    DECLARE vTestaNotas VARCHAR (20);
    SELECT COUNT(NUMERO) INTO vTestaNotas FROM notas_fiscais WHERE DATA_VENDA = data;    
    IF vTestaNotas > 70 THEN SET vTestaNotas = 'Muita nota';
        ELSE SET vTestaNotas = 'Pouca nota';
    END IF;    
SELECT vTestaNotas;
END

Pra comparar as datas e a quantidade de notas vendidas por dia (confirmar se minha sp retornaria a resposta certa), fiz essa consulta:

SELECT DATA_VENDA AS DATA, COUNT(NUMERO) DATA_VENDA FROM notas_fiscais GROUP BY DATA_VENDA;

Necessariamente precisava declarar mais de uma variável mesmo?

1 resposta
solução!

Susany,

Ué? Precisa declarar mais que uma variável? Veja esta SP:

CREATE DEFINER=`root`@`localhost` PROCEDURE `Testa_Numero_Notas`(DATANOTA date)
BEGIN
    DECLARE NUMNOTAS INT;
    SELECT COUNT(*) INTO NUMNOTAS FROM NOTAS_FISCAIS WHERE DATA_VENDA = DATANOTA;

    IF NUMNOTAS > 70 THEN
        SELECT 'Muita Nota', NUMNOTAS;
    ELSE
        SELECT 'Pouca Nota', NUMNOTAS;
    END IF;

END

Exemplo de como testar:

USE sucos_vendas;

SELECT DATA_VENDA AS DATA, COUNT(NUMERO) DATA_VENDA 
FROM notas_fiscais 
GROUP BY DATA_VENDA;

CALL Testa_Numero_Notas('2015-01-22');

[]'s,

Fabio I.