procedure group by não funciona

Firebird

17/04/2006

Caros amigos não sei o que acontece com esse procedimento não consigo usar group by

aparece o seguinte erro :
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).



if (:i_tipo = ´TESTE´) then
begin
FOR
SELECT
v.ven_num_nota,
v.ven_data_hora_venda,
det.vd_codigo_produto,
prod.pro_codigo,
mod.mod_descricao,
sum(det.vd_quantidade),
sum(det.vd_valor_uni),
sum(det.vd_valor_total)
FROM
VENDAS v
left join
vendas_detalhes det on (det.vd_codigo_venda = v.ven_codigo)
inner join
produto prod on (prod.pro_codigo = det.vd_codigo_produto)
inner join
modelo mod on (mod.mod_codigo = prod.pro_cod_modelo and mod.mod_grupo = 3)

WHERE
v.ven_empresa = :i_empresa and
v.ven_data_hora_venda between :i_data_inicial and :i_data_final

group by v.ven_codigo

INTO
:r_num_nota,
:r_data_hora,
:r_cod_prod,
:r_cod_prod1,
:r_des_mod,
:r_quantidade,
:r_valor_c,
:r_valor_v

DO
SUSPEND;
end


Uiliangurjon

Uiliangurjon

Curtidas 0

Respostas

Camilo

Camilo

17/04/2006

tenho essa funcionando, tem o group by, o q vi de diferente foi as, antes do begin, o erro quando eu naum estava conseguindo e q eu tava usando apenas select como se fosse no editor de sql normal, mais na SP soh funcionou com for select, como está no seu tb, mais o + acho q tá certo, nosso amigo emersonen vendo ae ele vai colocar pra funcionar, mais veva o as antes do begin....

SET TERM ^ ;

CREATE PROCEDURE P_GRAF_HIST_CAIXA (
VDATA_INICIO DATE,
VDATA_FINAL DATE)
RETURNS (
ID_HISTORICO INTEGER,
VALOR NUMERIC(18,2))
AS
BEGIN
for select
id_historico, sum(valor)
from
caixa
group by id_historico

into
:id_historico,
:Valor do
suspend;
end^

SET TERM ; ^

GRANT SELECT ON CAIXA TO PROCEDURE P_GRAF_HIST_CAIXA;

GRANT EXECUTE ON PROCEDURE P_GRAF_HIST_CAIXA TO SYSDBA;


GOSTEI 0
POSTAR