Stored Procedure ( Converder de FB para PostgreSQL)
28/06/2010
0
Prezados, como criar Stored Procedure no PostgreSQL para retornar dados?
(O proposito da Stored Procedure utilizada é para produzir Relatórios.)
No Firebird a função "Suspend" retorna a linha de um "For
Select".
Como converter o exemplo abaixo para PostgreSQL?
Codigo fonte SQL:
--- apos executar a SP ---
DATA: VENDEDOR: PRODUTOS: VALOR_NF:
12/03/2009 6 1 500,00
04/03/2009 6 1 105,00
05/03/2009 6 1 105,00
08/04/2009 6 1 105,00
23/03/2009 6 1 195,00
13/03/2009 12 1 250,00
create procedure SP_VENDAS_TESTE ( NCLIENTE integer) returns ( DATA date, VENDEDOR integer, PRODUTOS integer, VALOR_NF numeric(15,2)) as declare variable N_PRODUTOS numeric(12,4); declare variable N_VENDAS numeric(12,4); begin N_PRODUTOS =0; N_VENDAS =0; /* LOOP */ for select EMISSAO, VENDEDOR, QTDE_PRODUTOS, TOTAL_NF from vendas where cliente=:NCLIENTE into :DATA, :VENDEDOR, :PRODUTOS, :VALOR_NF do begin -- soma total de produtos N_PRODUTOS = N_PRODUTOS + :PRODUTOS; -- soma total de vendas N_VENDAS = N_VENDAS + :VALOR_NF; suspend; end end
DATA: VENDEDOR: PRODUTOS: VALOR_NF:
12/03/2009 6 1 500,00
04/03/2009 6 1 105,00
05/03/2009 6 1 105,00
08/04/2009 6 1 105,00
23/03/2009 6 1 195,00
13/03/2009 12 1 250,00
Moura
Curtir tópico
+ 0
Responder
Posts
03/07/2010
Km Sistemas
Bom dia
Não sei se entendi direito o que esta precisando mas se for uma somatoria de vendas por período e vendedor so este select já resolveria tanto no postgres como em qualquer banco de dados.
select EMISSAO, VENDEDOR, sum(PRODUTOS), sum(TOTAL_NF)
from vendas
where cliente=:NCLIENTEgroup by EMISSAO, VENDEDOR
order by EMISSAO, VENDEDOR
Desta froma vc tera
Espero ter ajudado.
Responder
04/07/2010
Moura
Prezados "Equipe K&M",
O que preciso é saber como montar a "estrutura" de uma Stored Procedure em PostgreSQL para trazer o mesmo resultado que o codigo acima (em Firebird) retorna (exemplo).
Seu código SQL eu compreendi bem, mas como montar a Stored Procedure?
Seu código SQL eu compreendi bem, mas como montar a Stored Procedure?
Responder
Clique aqui para fazer login e interagir na Comunidade :)