Boa noite, estou tentando fazer uma procedure em MySql com duas variáveis de entrada um com data inicial e outra com data final de acordo com o código abaixo
delimiter //
CREATE PROCEDURE produtos_agrupados(dti TIMESTAMP, dtf TIMESTAMP)
BEGIN
declare dti TIMESTAMP;
declare dtf TIMESTAMP;
SELECT tbcadproduto.PRODUTONOME,
sum(tbcadpedido.QTD) as total,
DATEDIFF(dtf,dti) as qtd_dias
FROM tbcadpedido
INNER JOIN tbcadproduto ON tbcadpedido.IDPRODUTO = tbcadproduto.ID
INNER JOIN tbcadunidade ON tbcadpedido.IDUNIDADE = tbcadunidade.id
where (tbcadpedido.DATAENTREGA BETWEEN dti and dtf)
GROUP BY tbcadproduto.PRODUTONOME
order by tbcadproduto.PRODUTONOME;
end //
delimiter ;
A chamada da procedure fica assim
call produtos_agrupados('2020-01-01','2020-03-09')
Cria a procedure mais não retorna nada.
Mais o select se eu fizer assim como está abaixo, retorna o que eu quero.
SELECT tbcadproduto.PRODUTONOME,
sum(tbcadpedido.QTD) as total,
DATEDIFF('2020-03-09','2020-01-01') as qtd_dias
FROM tbcadpedido
INNER JOIN tbcadproduto ON tbcadpedido.IDPRODUTO = tbcadproduto.ID
INNER JOIN tbcadunidade ON tbcadpedido.IDUNIDADE = tbcadunidade.id
where (tbcadpedido.DATAENTREGA BETWEEN '2020-01-01' and '2020-03-09')
GROUP BY tbcadproduto.PRODUTONOME
order by tbcadproduto.PRODUTONOME;
então onde fica o erro?
Ainda quero que a total seja dividido pela qtd_dias pra ver tipo uma média, se puderem me ajudar eu agradeço.