Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Exercício atribuição de valores

Bom dia, consegui resolver o problema dessa forma:

CREATE DEFINER=`root`@`localhost` 
PROCEDURE `Quantidade_Notas`(data__ DATE)
BEGIN
SELECT DATA_VENDA, COUNT(NUMERO) FROM notas_fiscais 
WHERE DATA_VENDA = data__;
END

No campo data de insere a data no formato 20170101, senão ocorre erro 1292. Fiz dessa forma, pois não entendi bem o porquê de utilizar atribuição de valores. Poderia me elucidar esse ponto? Grato.

4 respostas

Oii Danival, tudo bom?

Quando nós temos um valor constante na variável, usamos o SET, certo? Nesse exercicío está pedindo para atribuir o valor na variável numnotas, tal qual valor não sabemos qual é.

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

Repare que está usando ali SELECT COUNT(*) INTO NUMNOTAS. O valor do count que irá retornar, está sendo atribuída a varíavel numnotas através do INTO.

Olhando seu código, realmente não se faz necessário criar uma variável para receber um valor constante, apesar que você criou a variável da data. Seu código não está errado, mas fugiu um pouco do exercício proposto.

Espero ter ajudado de alguma forma. Qualquer coisa é só falar, beleza? :)

entendi o seu ponto. Mas se fosse uma pesquisa real, numa empresa por exemplo, o pessoal se importa com esses detalhes, ou só resultado?

Na verdade, isso depende muito.

O resultado vai importar apenas para o cliente final/usuário e os detalhes vão importar para o desenvolverdor/dba, mas dependendo da empresa, nem vai se importar com a forma em que foi resolvido o problema. A não ser que isso cause alguma perca de performance ou algo do tipo.

solução!

entendi, obrigado

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software