[firebase-br] RES: Funcao Agregada
José Aparecido da Silva
joseasilva em bol.com.br
Qua Nov 22 19:31:51 -03 2006
Faz assim no firebird:
SET TERM ^ ;
CREATE PROCEDURE NEW_PROCEDURE
RETURNS (
NOME VARCHAR(50),
VALOR NUMERIC(18,2))
AS
declare variable Total numeric(18,2);
begin
Total = 0;
For Select nm_pessoa, vl_valorqualquer from TABELA
into
:nome,
:valor
do
begin
Total = total + valor;
suspend;
end
Nome = 'Total';
Valor = Total;
Suspend;
end
^
SET TERM ; ^
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Murilo >>> CPR Sistemas
Enviada em: quarta-feira, 22 de novembro de 2006 18:55
Para: lista em firebase.com.br
Assunto: [firebase-br] Funcao Agregada
Uma dúviada,
suponhamos que tenho o a seguinte procedure:
proc_teste(parametros de entrada...)
returns(.....)
as
begin
Total = 0;
For Select nm_pessoa, vl_valorqualquer from TABELA
into
:nome,
:valor
do
begin
Total = total + valor;
suspend;
end;
Nome = 'Total';
Valor = Total;
Suspend;
end
Como resultado via me retornar +- isso:
NM_PESSOA VL_VALORQUALQUER
Pessoa 1 5,00
Pessoa 2 10,00
Pessoa 3 30,00
Pessoa 4 8,00
Tem como eu fazer no mesmo select ou ainda com uma função ou algo do tipo
(Nada de subselects no select principal, Ok.), que me traga a Soma da coluna
vl_valorqualquer, posi sei que se der um select Sum(vl_valorqualquer), ele
retorna oq ue eu quero, mas gostaria de saber se tme como fazer isso de
outra forma, trazer como uma nova linha de registro, de forma que o retorno
seja assim:
NM_PESSOA VL_VALORQUALQUER
Pessoa 1 5,00
Pessoa 2 10,00
Pessoa 3 30,00
Pessoa 4 8,00
TOTAL 53,00
Ou entõa na procedure um meio de fazer calcular os campos que eu já peguei
o valor. Espero que tenha sido claro o sulficiente.
______________________________
Murilo Garcia Bento
CPR Sistemas
Mais detalhes sobre a lista de discussão lista